122 lines
2.6 KiB
TypeScript
122 lines
2.6 KiB
TypeScript
/*
|
||
* 双倍充值活动
|
||
* 此活动只能GM打开
|
||
*/
|
||
|
||
import GameUtil from "../core/GameUtil";
|
||
import ActivityBase from "./ActivityBase";
|
||
import ActivityDefine from "./ActivityDefine";
|
||
import Http from "../utils/Http";
|
||
import GameConf from "../../conf/GameConf";
|
||
import GTimer from "../common/GTimer";
|
||
|
||
export default class ChongZhi extends ActivityBase {
|
||
scale: number;
|
||
name: string;
|
||
open_notice: string;
|
||
activity_id: number;
|
||
is_gm_open: boolean;
|
||
|
||
constructor() {
|
||
super();
|
||
this.scale = 2; // 活动充值的倍数
|
||
this.name = '双倍充值';
|
||
this.open_notice = `${this.name}开启!`;
|
||
this.activity_id = ActivityDefine.activityKindID.ChongZhi;
|
||
this.is_ready_notice = true;
|
||
this.is_gm_open = false;
|
||
}
|
||
|
||
/*
|
||
* gm设置活动时间
|
||
* @param begin 开始时间
|
||
* @param end 结束时间
|
||
*/
|
||
setActivityTm(begin: any, end: any) {
|
||
this.is_gm_open = true;
|
||
this.open_time = begin;
|
||
this.close_time = end;
|
||
}
|
||
|
||
/*
|
||
* 活动开启
|
||
*/
|
||
open() {
|
||
Http.sendget(
|
||
GameConf.gate_ip,
|
||
GameConf.gate_port,
|
||
'/openChargeActivity',
|
||
{
|
||
serverid: GameUtil.serverId,
|
||
},
|
||
(ret: any, data: any) => {
|
||
// console.log('openChargeActivity', ret, data);
|
||
}
|
||
);
|
||
let start_time = GTimer.dateFormat(this.open_time);
|
||
let end_time = GTimer.dateFormat(this.close_time);
|
||
this.open_notice = `双倍充值活动已经开始,活动时间为${start_time}到${end_time}!`;
|
||
console.log(this.open_notice);
|
||
super.open();
|
||
}
|
||
|
||
/*
|
||
* 活动关闭
|
||
* @param notify 是否通知http服务器
|
||
*/
|
||
close(notify?: any) {
|
||
let start_time = GTimer.dateFormat(this.open_time);
|
||
let end_time = GTimer.dateFormat(this.close_time);
|
||
console.log(`双倍充值活动已经结束,活动时间为${start_time}到${end_time}!`);
|
||
this.is_gm_open = false;
|
||
if (notify) {
|
||
Http.sendget(
|
||
GameConf.gate_ip,
|
||
GameConf.gate_port,
|
||
'/closeChargeActivity',
|
||
{
|
||
serverid: GameUtil.serverId,
|
||
isend: true,
|
||
},
|
||
(ret: any, data: any) => {
|
||
// console.log('closeChargeActivity', ret, data);
|
||
}
|
||
);
|
||
}
|
||
super.close();
|
||
}
|
||
|
||
/*
|
||
* 活动是否开启
|
||
*/
|
||
getIsOpen() {
|
||
return (this.activity_state == ActivityDefine.activityState.Opening);
|
||
}
|
||
|
||
/*
|
||
* 充值倍数
|
||
*/
|
||
getChargeScale() {
|
||
return this.scale;
|
||
}
|
||
|
||
update() {
|
||
if (!this.is_gm_open) {
|
||
return;
|
||
}
|
||
let date = (new Date()).getTime();
|
||
if (this.activity_state != ActivityDefine.activityState.Opening) {
|
||
if (date >= this.open_time && date <= this.close_time) {
|
||
this.open();
|
||
}
|
||
}
|
||
else {
|
||
if (date > this.close_time) {
|
||
this.close(true);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
module.exports = ChongZhi;
|