zhuguoqing ff550d5d6a init
2022-05-22 10:32:02 +08:00

277 lines
9.3 KiB
JavaScript

var gameConfig = require("gameConfig")
var lootcfg = gameConfig.itemConfig
var chacheobj = require("battleobjcache")
var praconfig = gameConfig.parameterConfig
var bnewbieCfg = require("battleNewbieConfig")
var bNewbieEnum = bnewbieCfg.enu
var SDKManage = require("SDKManage")
// var functionTb={};
// functionTb[bNewbieEnum.createloot] = function(){
// }
var lootobj = function() {
this.ondes = function(v) {
if (this.destroykey == v) {
this.dodead()
cc.Notifier.off('ondesloot', this);
}
}
this.dodead = function() {
this.dead = true
var nloot = null
if (this.nextloot) {
nloot = cc.clientbattle.createlootbyid(this.nextloot, this.x, this.y)
}
return nloot
}
this.dodakai = function(v) {
var nloot = this.dodead()
if (nloot.event) {
nloot.doevent()
}
}
this.init = function(data, uuid) {
this.dead = false
this.dead_at_thisframe = false
this.obj_uniid = uuid
this.obstacle_id = data.obstacle_id
this.pos = {
x: data.x,
y: data.y
}
var cfg = lootcfg[this.obstacle_id]
if (!cfg) {
if (data.obstacle_id == "12803") {
cc.clientbattle.createdropitem(data.obstacle_id, this.pos)
}
return false
}
if (cc.clientbattle.battlecount > 1 && data.obstacle_id == praconfig.level0room_spec_things.param_value) {
return false
}
this.nextloot = cfg.nextloot
if (cfg.destroykey) {
this.destroykey = cfg.destroykey
cc.Notifier.on('ondesloot', this, this.ondes.bind(this));
}
// this.pos.x-=cfg.width / 2
// this.pos.y-=cfg.height / 2
this.event = cfg.event
this.button_name = cfg.button_name
this.x = this.pos.x
this.y = this.pos.y
if (cfg.hp) {
this.health = cfg.hp
this.candestroy = true
} else {
this.candestroy = false
}
if (cfg.is_tree != 2) {
this.needpz = true
}
if (cfg.is_house) {
this.building_id = cfg.house_id
this.object_type = 3
var hcfg = gameConfig.houseConfig[this.building_id]
this.lootarr = hcfg.lootObj
this.tilewidth = hcfg.tilewidth / 2
this.tileheight = hcfg.tileheight / 2
this.createwall()
} else {
this.object_type = 2
chacheobj.objmaploot[uuid] = this
}
this.dropid = cfg.drop
this.width = cfg.width
this.height = cfg.height
if (data.kongqiqiang) {
this.width = data.width
this.height = data.height
this.collider = {
width: data.width,
height: data.height
}
} else {
this.collider = null
// if(data.height){
// this.pos.y = this.pos.y -data.height/2
// this.y = this.pos.y
// }
}
if (cfg.collision_hit == 1) {
this.width = this.height = 0
this.needpz = false
}
this.dmg = cfg.damage
this.damage_dia = cfg.damage_dia
return true
}
this.createwall = function() {
this.objChildren = []
var hcfg = gameConfig.houseConfig[this.building_id]
for (var i = hcfg.staticObj.length - 1; i >= 0; i--) {
var p = hcfg.staticObj[i]
var child = {
x: p.x - this.tilewidth + this.x - p.width / 2,
y: p.y - this.tileheight + this.y - p.height / 2,
width: p.width,
height: p.height,
xx: p.x - this.tilewidth + this.x,
yy: p.y - this.tileheight + this.y,
}
cc.clientbattle.myTree.insert(child);
this.objChildren.push(child)
}
}
this.hurt = function(dmg, atkerid) {
if (this.candestroy && this.health > 0) {
this.health -= dmg
if (this.health <= 0) {
this.dodead()
this.dead_at_thisframe = true
if (this.dmg && this.damage_dia) {
cc.clientbattle.createboom(this.dmg, this.damage_dia, this.pos, 0, false, atkerid)
}
if (this.dropid) {
cc.clientbattle.canrefreshrobot = true
return this.dropid
}
}
}
return false
}
this.donext = function() {
var nowstp = this.eventcfg[this.step]
if (nowstp) {
var tp = nowstp[0]
var isquick = false
if (tp == bNewbieEnum.createloot || tp == bNewbieEnum.createdrop || tp == bNewbieEnum.createair) {
isquick = true
var x = nowstp[2]
var y = nowstp[3]
if (nowstp[4] == 1) {
x += cc.clientbattle.player.x
y += cc.clientbattle.player.y
}
if (tp == bNewbieEnum.createloot) {
cc.clientbattle.createlootbyid(nowstp[1], x, y)
} else if (tp == bNewbieEnum.createdrop) {
var pppp = null
if (nowstp[5]) {
pppp = cc.clientbattle.player
}
cc.clientbattle.createdropitem(nowstp[1], {
x: x,
y: y
}, 0, true, undefined, pppp)
} else if (tp == bNewbieEnum.createair) {
cc.clientbattle.airdroptime = 5
cc.clientbattle.airdrop = {
pos: {
x: x,
y: y,
},
appear_time: 5000,
box_id: nowstp[1],
}
cc.clientbattle.airx = x
cc.clientbattle.airy = y
cc.clientbattle.aironjid = nowstp[1]
}
} else if (tp == bNewbieEnum.gamepause) {
isquick = true
cc.battlepause = true
} else if (tp == bNewbieEnum.gameresume) {
isquick = true
cc.battlepause = false
} else if (tp == bNewbieEnum.playerpause) {
isquick = true
cc.clientbattle.player.dopause(nowstp[1])
} else if (tp == bNewbieEnum.tipsPosAndRotation) {
isquick = true
cc.bnewbiemgr.settipsPosAndRotation(nowstp)
} else if (tp == bNewbieEnum.handPosAndRotation) {
isquick = true
cc.bnewbiemgr.sethandPosAndRotation(nowstp)
} else if (tp == bNewbieEnum.showHand) {
isquick = true
cc.bnewbiemgr.showHand()
} else if (tp == bNewbieEnum.hideHand) {
isquick = true
cc.bnewbiemgr.hideHand()
} else if (tp == bNewbieEnum.setText) {
if (nowstp[1] == "" || !nowstp[2]) {
isquick = true
}
cc.bnewbiemgr.setText(this, nowstp)
} else if (tp == bNewbieEnum.createnewbieenemy) {
isquick = true
cc.clientbattle.createnewbieenemy(nowstp)
} else if (tp == bNewbieEnum.touch) {
cc.bnewbiemgr.ntouch(this, nowstp[1])
} else if (tp == bNewbieEnum.emit) {
isquick = true
cc.Notifier.emit("newbieanimation", nowstp[1])
} else if (tp == bNewbieEnum.destroyloot) {
isquick = true
cc.Notifier.emit("ondesloot", nowstp[1])
} else if (tp == bNewbieEnum.timescale) {
isquick = true
cc.mytimescale = nowstp[1]
} else if (tp == bNewbieEnum.dir) {
isquick = true
var tectv = cc.v2(nowstp[1], nowstp[2])
cc.clientbattle.player.dashdir = tectv
} else if (tp == bNewbieEnum.maidian) {
isquick = true
SDKManage.logEvent(nowstp[1])
} else if (tp == bNewbieEnum.hidenode) {
isquick = true
cc.find(nowstp[1]).active = false
} else if (tp == bNewbieEnum.shownode) {
isquick = true
cc.find(nowstp[1]).active = true
} else if (tp == bNewbieEnum.dowin) {
isquick = true
cc.clientbattle.donewbiewin()
} else {
cc.clientbattle.addevent(this, nowstp)
}
this.step++;
if (isquick) {
this.donext()
}
}
}
this.doevent = function() {
this.dodead()
var enu = bnewbieCfg.enu
this.step = 0
this.eventcfg = bnewbieCfg.cfg[this.event]
this.donext()
}
}
module.exports = lootobj;