掉落加双倍处理 基本完成
This commit is contained in:
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -73,14 +73,6 @@ export class SingletonModuleComp extends ecs.Comp {
|
|||||||
level:1,//关卡等级
|
level:1,//关卡等级
|
||||||
max_mission:4,//最大关卡
|
max_mission:4,//最大关卡
|
||||||
},
|
},
|
||||||
reward:{
|
|
||||||
score:0,
|
|
||||||
mission:0,
|
|
||||||
gold:0, //升级主要资源
|
|
||||||
diamond:0, //商店购买 及 双倍奖励资源
|
|
||||||
meat:0,
|
|
||||||
exp:0, //升级经验
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
vmAdd() {
|
vmAdd() {
|
||||||
VM.add(this.vmdata, "data");
|
VM.add(this.vmdata, "data");
|
||||||
|
|||||||
@@ -308,8 +308,13 @@ export class MonsterDropManager {
|
|||||||
* @param buffCount buff数量
|
* @param buffCount buff数量
|
||||||
* @returns 基础资源掉落结果
|
* @returns 基础资源掉落结果
|
||||||
*/
|
*/
|
||||||
static calculateBaseResourceDrops(monsterQuality: QualitySet, stageNumber: number, buffCount: number = 0): {exp: number, gold?: number, diamond?: number} {
|
static calculateBaseResourceDrops(monsterQuality: QualitySet, stageNumber: number, buffCount: number = 0): {exp: number, gold: number, diamond: number} {
|
||||||
const result: {exp: number, gold?: number, diamond?: number} = {exp: 0};
|
// 初始化结果对象,确保所有字段都存在
|
||||||
|
const result: {exp: number, gold: number, diamond: number} = {
|
||||||
|
exp: 0,
|
||||||
|
gold: 0,
|
||||||
|
diamond: 0
|
||||||
|
};
|
||||||
|
|
||||||
// 获取品质加成
|
// 获取品质加成
|
||||||
const qualityBonus = QualityBonusConfig[monsterQuality];
|
const qualityBonus = QualityBonusConfig[monsterQuality];
|
||||||
|
|||||||
@@ -24,7 +24,11 @@ export class MissionComp extends CCComp {
|
|||||||
// reward:number = 0;
|
// reward:number = 0;
|
||||||
// reward_num:number = 0;
|
// reward_num:number = 0;
|
||||||
rewards:any[]=[]
|
rewards:any[]=[]
|
||||||
|
game_data:any={
|
||||||
|
exp:0,
|
||||||
|
gold:0,
|
||||||
|
diamond:0
|
||||||
|
}
|
||||||
onLoad(){
|
onLoad(){
|
||||||
this.on(GameEvent.MissionStart,this.mission_start,this)
|
this.on(GameEvent.MissionStart,this.mission_start,this)
|
||||||
this.on(GameEvent.MonDead,this.do_mon_dead,this)
|
this.on(GameEvent.MonDead,this.do_mon_dead,this)
|
||||||
@@ -46,8 +50,11 @@ export class MissionComp extends CCComp {
|
|||||||
do_reward(){
|
do_reward(){
|
||||||
// 奖励发放
|
// 奖励发放
|
||||||
}
|
}
|
||||||
do_drop(drop_item:any[]){
|
do_drop(drop_item:any[],game_data:any={exp:0,gold:0,diamond:0}){
|
||||||
console.log("[MissionComp] do_drop",drop_item)
|
console.log("[MissionComp] do_drop",drop_item,game_data)
|
||||||
|
this.game_data["exp"]+=game_data.exp
|
||||||
|
this.game_data["gold"]+=game_data.gold
|
||||||
|
this.game_data["diamond"]+=game_data.diamond
|
||||||
let parent=this.node.getChildByName("reward").getChildByName("items")
|
let parent=this.node.getChildByName("reward").getChildByName("items")
|
||||||
let items=parent.children
|
let items=parent.children
|
||||||
if(drop_item.length>0){
|
if(drop_item.length>0){
|
||||||
@@ -96,7 +103,7 @@ export class MissionComp extends CCComp {
|
|||||||
smc.vmdata.mission_data.mon_num--
|
smc.vmdata.mission_data.mon_num--
|
||||||
if(data.drops){
|
if(data.drops){
|
||||||
if(data.drops.length>0){
|
if(data.drops.length>0){
|
||||||
this.do_drop(data.drops)
|
this.do_drop(data.drops,data.game_data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(smc.vmdata.mission_data.mon_num<=0) {
|
if(smc.vmdata.mission_data.mon_num<=0) {
|
||||||
@@ -107,7 +114,7 @@ export class MissionComp extends CCComp {
|
|||||||
}
|
}
|
||||||
smc.addMission(1)
|
smc.addMission(1)
|
||||||
oops.message.dispatchEvent(GameEvent.FightEnd,{victory:true})
|
oops.message.dispatchEvent(GameEvent.FightEnd,{victory:true})
|
||||||
oops.gui.open(UIID.Victory,{victory:true,rewards:this.rewards})
|
oops.gui.open(UIID.Victory,{victory:true,rewards:this.rewards,game_data:this.game_data})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -116,7 +123,7 @@ export class MissionComp extends CCComp {
|
|||||||
smc.vmdata.mission_data.hero_num--
|
smc.vmdata.mission_data.hero_num--
|
||||||
if(smc.vmdata.mission_data.hero_num<=0) {
|
if(smc.vmdata.mission_data.hero_num<=0) {
|
||||||
oops.message.dispatchEvent(GameEvent.FightEnd,{victory:false})
|
oops.message.dispatchEvent(GameEvent.FightEnd,{victory:false})
|
||||||
oops.gui.open(UIID.Victory,{victory:false,rewards:this.rewards})
|
oops.gui.open(UIID.Victory,{victory:false,rewards:this.rewards,game_data:this.game_data})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
do_ad(){
|
do_ad(){
|
||||||
@@ -160,7 +167,7 @@ export class MissionComp extends CCComp {
|
|||||||
|
|
||||||
to_end_fight(){
|
to_end_fight(){
|
||||||
oops.message.dispatchEvent(GameEvent.FightEnd,{victory:false})
|
oops.message.dispatchEvent(GameEvent.FightEnd,{victory:false})
|
||||||
oops.gui.open(UIID.Victory,{victory:false,rewards:this.rewards})
|
oops.gui.open(UIID.Victory,{victory:false,rewards:this.rewards,game_data:this.game_data})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,11 @@ export class VictoryComp extends CCComp {
|
|||||||
reward_lv:number=1
|
reward_lv:number=1
|
||||||
reward_num:number=2
|
reward_num:number=2
|
||||||
rewards:any[]=[]
|
rewards:any[]=[]
|
||||||
|
game_data:any={
|
||||||
|
exp:0,
|
||||||
|
gold:0,
|
||||||
|
diamond:0
|
||||||
|
}
|
||||||
/** 视图层逻辑代码分离演示 */
|
/** 视图层逻辑代码分离演示 */
|
||||||
protected onLoad(): void {
|
protected onLoad(): void {
|
||||||
|
|
||||||
@@ -23,6 +28,9 @@ export class VictoryComp extends CCComp {
|
|||||||
|
|
||||||
onAdded(args: any) {
|
onAdded(args: any) {
|
||||||
console.log("[VictoryComp] onAdded",args,smc.items)
|
console.log("[VictoryComp] onAdded",args,smc.items)
|
||||||
|
if(args.game_data){
|
||||||
|
this.game_data=args.game_data
|
||||||
|
}
|
||||||
if(args.rewards){
|
if(args.rewards){
|
||||||
this.add_reward(args.rewards)
|
this.add_reward(args.rewards)
|
||||||
this.rewards=args.rewards
|
this.rewards=args.rewards
|
||||||
@@ -52,15 +60,28 @@ export class VictoryComp extends CCComp {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
victory_end(){
|
victory_end(){
|
||||||
|
this.clear_data()
|
||||||
oops.message.dispatchEvent(GameEvent.MissionEnd)
|
oops.message.dispatchEvent(GameEvent.MissionEnd)
|
||||||
oops.gui.removeByNode(this.node)
|
oops.gui.removeByNode(this.node)
|
||||||
}
|
}
|
||||||
|
clear_data(){
|
||||||
|
this.game_data={
|
||||||
|
exp:0,
|
||||||
|
gold:0,
|
||||||
|
diamond:0
|
||||||
|
}
|
||||||
|
this.rewards=[]
|
||||||
|
this.node.getChildByName("box").getChildByName("items").removeAllChildren()
|
||||||
|
}
|
||||||
//看广告双倍
|
//看广告双倍
|
||||||
watch_ad(){
|
watch_ad(){
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
double_reward(){
|
double_reward(){
|
||||||
if(this.watch_ad()){
|
if(this.watch_ad()){
|
||||||
|
smc.addExp(this.game_data["exp"])
|
||||||
|
smc.addGold(this.game_data["gold"])
|
||||||
|
smc.addDiamond(this.game_data["diamond"])
|
||||||
this.rewards.forEach(d_item=>{
|
this.rewards.forEach(d_item=>{
|
||||||
smc.addItem(d_item.item_uuid,d_item.count)
|
smc.addItem(d_item.item_uuid,d_item.count)
|
||||||
})
|
})
|
||||||
@@ -69,6 +90,7 @@ export class VictoryComp extends CCComp {
|
|||||||
console.log("[VictoryComp]double_reward",smc.items,this.rewards)
|
console.log("[VictoryComp]double_reward",smc.items,this.rewards)
|
||||||
}
|
}
|
||||||
restart(){
|
restart(){
|
||||||
|
this.clear_data()
|
||||||
oops.message.dispatchEvent(GameEvent.MissionStart)
|
oops.message.dispatchEvent(GameEvent.MissionStart)
|
||||||
oops.gui.removeByNode(this.node)
|
oops.gui.removeByNode(this.node)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user