mirror of
https://gitee.com/jisol/jisol-game/
synced 2025-09-27 02:36:14 +00:00
保存
This commit is contained in:
@@ -28,14 +28,14 @@ import AppAction from "./AppAction";
|
||||
import { Asset } from "cc";
|
||||
import { Component } from "cc";
|
||||
|
||||
let APIPath = `http://localhost:8080`
|
||||
let WsPath = `ws://localhost:8080/websocket`
|
||||
// let APIPath = `http://localhost:8080`
|
||||
// let WsPath = `ws://localhost:8080/websocket`
|
||||
// let APIPath = `http://192.168.1.23:8080`
|
||||
// let WsPath = `ws://192.168.1.23:8080/websocket`
|
||||
// let APIPath = `http://192.168.0.116:8080`
|
||||
// let WsPath = `ws://192.168.0.116:8080/websocket`
|
||||
// let APIPath = `https://api.pet.jisol.cn`
|
||||
// let WsPath = `wss://api.pet.jisol.cn/websocket`
|
||||
// let APIPath = `http://192.168.0.115:8080`
|
||||
// let WsPath = `ws://192.168.0.115:8080/websocket`
|
||||
let APIPath = `https://api.pet.jisol.cn`
|
||||
let WsPath = `wss://api.pet.jisol.cn/websocket`
|
||||
|
||||
//重写UI
|
||||
class JNGLayer extends JNLayer{
|
||||
|
@@ -39,7 +39,8 @@ export default class PVPAction extends BaseAction {
|
||||
//PVP开始等待
|
||||
onModePVPStartWait(){
|
||||
//PVP 匹配页面
|
||||
app.layer.Open(GUI.PVPModeMatchView);
|
||||
if(GBattleModeManager.getIns().current != BattleMode.PVP)
|
||||
app.layer.Open(GUI.PVPModeMatchView);
|
||||
}
|
||||
|
||||
//PVP结束等待
|
||||
|
@@ -97,6 +97,9 @@ export default class GOnHookMode extends GDefaultMode<{},{}>{
|
||||
//是否允许攻击
|
||||
isAllowAttack:boolean = false;
|
||||
|
||||
//是否战斗失败
|
||||
isFail:boolean = false;
|
||||
|
||||
//添加监听事件
|
||||
addEvent(){
|
||||
app.event.on(PlayerTacticalEvent.UPDATE_TACTICAL,this.onUpdatePlayerPet,this);
|
||||
@@ -352,7 +355,11 @@ export default class GOnHookMode extends GDefaultMode<{},{}>{
|
||||
}
|
||||
|
||||
//生成敌人
|
||||
onResetGenerateEnemy(){
|
||||
onResetFight(){
|
||||
|
||||
//初始化战斗失败
|
||||
this.isFail = false;
|
||||
|
||||
this.enemyRoles = [];
|
||||
let sign = TD.TbGOnHookMaps.get(GOnHookData.getIns().info.onHookMap).sign;
|
||||
let table:{data:TbGEntity.TOnHookLevel} = TD[sign].get(GOnHookData.getIns().info.levelId);
|
||||
@@ -376,13 +383,26 @@ export default class GOnHookMode extends GDefaultMode<{},{}>{
|
||||
role.node.destroy()
|
||||
},3000)
|
||||
|
||||
//清理
|
||||
this.onClearCache();
|
||||
|
||||
//如果死亡的是野怪则通知野怪死亡
|
||||
if(role.getComponent(GRoleOnHookCreepsExpand)){
|
||||
GOnHookManager.getIns().onKillSreeps(role.getComponent(GRoleOnHookCreepsExpand).creeps);
|
||||
//如果野怪都死了 并且 战斗成功 则向服务器发送战斗成功
|
||||
if(this.enemyRoles.length <= 0 && !this.isFail){
|
||||
GOnHookManager.getIns().onWinLevel();
|
||||
}
|
||||
}
|
||||
|
||||
//清理
|
||||
this.onClearCache();
|
||||
//如果死亡的是玩家宠物 并且 场上没有玩家宠物则重新战斗
|
||||
if(role.getComponent(GRoleOnHookPlayerExpand)){
|
||||
if(this.playerRoles.length <= 0){
|
||||
//玩家战斗失败
|
||||
this.isFail = true;
|
||||
this.onUpdatePlayerPet();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@@ -78,7 +78,7 @@ export default class GFSMOnHookMode extends GFSMBase{
|
||||
//生成敌人
|
||||
onGenEnemyProcess(){
|
||||
|
||||
this.mode.onResetGenerateEnemy();
|
||||
this.mode.onResetFight();
|
||||
return ProcessEnum.LeaveFight; //前往战斗
|
||||
|
||||
}
|
||||
|
@@ -3,11 +3,16 @@ import { app } from "../App";
|
||||
import { PlayerPetOV, RData, RProto } from "./API";
|
||||
import { GActionType } from "./GActionType";
|
||||
|
||||
export interface ModeHookInfo{
|
||||
maps:{[key:number]:number}; //地图关卡信息 {地图Id: 地图关卡Id}
|
||||
mapStates:{[key:number]:number}; //地图关卡状态 {地图Id: 状态(0:战斗中, 1:胜利)}
|
||||
}
|
||||
export interface ModeOnHookOV{
|
||||
|
||||
playerId:number; //玩家Id
|
||||
onHookMap:number; //当前玩家所在的地图(配置表Id)
|
||||
levelId:number; //当前关卡Id
|
||||
hookInfo:ModeHookInfo; //关卡信息
|
||||
|
||||
}
|
||||
|
||||
@@ -25,6 +30,8 @@ export const GAPI = {
|
||||
//出售野怪
|
||||
GOnHookSellCreeps : async (creepId) => RData(await app.api.post(`/game/mode/onHook/onSellCreeps/${creepId}`),true) as boolean,
|
||||
//下一关
|
||||
GOnHookNextLevel : async () => RData(await app.api.post(`/game/mode/onHook/nextLevel`)) as boolean,
|
||||
GOnHookNextLevel : async () => RData(await app.api.post(`/game/mode/onHook/nextLevel`),true) as ModeOnHookOV,
|
||||
//战胜当前关卡
|
||||
GOnHookWinLevel : async () => RData(await app.api.post(`/game/mode/onHook/winLevel`),true) as ModeOnHookOV,
|
||||
|
||||
}
|
@@ -4,19 +4,30 @@ import { GAPI, ModeOnHookOV } from "../consts/GAPI";
|
||||
import { GUI } from "../ui/UIConfig";
|
||||
import BaseData from "./BaseData";
|
||||
|
||||
export enum GOnHookDataEnum{
|
||||
UPDATE = "GOnHookDataEnum_UPDATE" //刷新信息
|
||||
}
|
||||
|
||||
//无限模式数据类
|
||||
export default class GOnHookData extends BaseData{
|
||||
|
||||
info:ModeOnHookOV;
|
||||
|
||||
//是否允许下一关
|
||||
get isNextLevel(){
|
||||
if(!this.info) return false;
|
||||
return this.info.hookInfo.mapStates[this.info.onHookMap] == 1;
|
||||
}
|
||||
|
||||
async onInit() {
|
||||
await this.onUpdateInfo();
|
||||
console.log("GOnHookData Info",this.info);
|
||||
}
|
||||
|
||||
//刷新数据
|
||||
async onUpdateInfo(){
|
||||
this.info = await GAPI.GOnHookInfo();
|
||||
async onUpdateInfo(info?){
|
||||
this.info = info || await GAPI.GOnHookInfo();
|
||||
app.event.emit(GOnHookDataEnum.UPDATE);
|
||||
}
|
||||
|
||||
//切换地图
|
||||
@@ -29,8 +40,14 @@ export default class GOnHookData extends BaseData{
|
||||
|
||||
//下一关
|
||||
async onNextLevel(){
|
||||
await GAPI.GOnHookNextLevel();
|
||||
await this.onUpdateInfo();
|
||||
let info = await GAPI.GOnHookNextLevel();
|
||||
if(info) this.onUpdateInfo(info);
|
||||
return !!info;
|
||||
}
|
||||
|
||||
//战胜当前关卡
|
||||
async onWinLevel(){
|
||||
this.onUpdateInfo(await GAPI.GOnHookWinLevel());
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -108,19 +108,16 @@ export default class GOnHookManager extends Singleton{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}).bind(this))
|
||||
|
||||
//生成野怪
|
||||
onSpawnSreeps(){
|
||||
onSpawnSreeps = NGameUtil.ThrottleASync((async () => {
|
||||
GAPI.GOnHookSpawnCreeps().then(data => {
|
||||
data.pets.forEach(pet => {
|
||||
this._sreeps.set(pet.key,pet as GOnHookPet);
|
||||
})
|
||||
});
|
||||
}
|
||||
}).bind(this))
|
||||
|
||||
//获取下一只野怪
|
||||
getNextCreeps(){
|
||||
@@ -204,11 +201,15 @@ export default class GOnHookManager extends Singleton{
|
||||
|
||||
//下一关
|
||||
async onNextLevel(){
|
||||
GOnHookData.getIns().onNextLevel();
|
||||
app.layer.Open(GUI.Tips,{text:"下一关"});
|
||||
await GOnHookData.getIns().onNextLevel();
|
||||
this.onResetMap();
|
||||
}
|
||||
|
||||
//战胜当前关卡
|
||||
async onWinLevel(){
|
||||
await GOnHookData.getIns().onWinLevel();
|
||||
}
|
||||
|
||||
//切换场景
|
||||
async setMap(mapId:number){
|
||||
|
||||
|
@@ -8,6 +8,9 @@ import { app } from '../../App';
|
||||
import { GAction } from '../../consts/GAction';
|
||||
import { GAPI } from '../../consts/GAPI';
|
||||
import GOnHookManager, { GOnHookManagerEvent } from '../../manager/battle/mode/GOnHookManager';
|
||||
import { Button } from 'cc';
|
||||
import GOnHookData, { GOnHookDataEnum } from '../../data/GOnHookData';
|
||||
import { Sprite } from 'cc';
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
@ccclass('MainView')
|
||||
@@ -18,6 +21,9 @@ export class MainView extends JNGLayerBase {
|
||||
|
||||
@property(Label)
|
||||
onHookLabel:Label; //挂机文本
|
||||
|
||||
@property(Button)
|
||||
nextLevelBtn:Button; //下一关按钮
|
||||
|
||||
onJNLoad(data?: any): void {
|
||||
|
||||
@@ -32,6 +38,7 @@ export class MainView extends JNGLayerBase {
|
||||
|
||||
//监听
|
||||
app.event.on(GOnHookManagerEvent.UPDATE_ON_HOOK_STATE,this.onUpdateOnHook,this);
|
||||
app.event.on(GOnHookDataEnum.UPDATE,this.onUpdateOnHookInfo,this);
|
||||
|
||||
}
|
||||
|
||||
@@ -39,16 +46,23 @@ export class MainView extends JNGLayerBase {
|
||||
onJNClose(): void {
|
||||
super.onJNClose();
|
||||
//取消监听
|
||||
app.event.on(GOnHookManagerEvent.UPDATE_ON_HOOK_STATE,this.onUpdateOnHook,this);
|
||||
app.event.off(GOnHookManagerEvent.UPDATE_ON_HOOK_STATE,this.onUpdateOnHook,this);
|
||||
app.event.off(GOnHookDataEnum.UPDATE,this.onUpdateOnHookInfo,this);
|
||||
}
|
||||
|
||||
onUpdateOnHook(){
|
||||
this.onHookLabel.string = (GOnHookManager.getIns().isOnHook) ? "挂机中" : "挂机";
|
||||
}
|
||||
|
||||
onUpdateOnHookInfo(){
|
||||
this.nextLevelBtn.node.active = GOnHookData.getIns().isNextLevel;
|
||||
}
|
||||
|
||||
//更新UI界面
|
||||
onUpdateView(){
|
||||
this.playerNameLabel.string = `${PlayerData.getIns().getInfo().playerId}`;
|
||||
this.onUpdateOnHookInfo();
|
||||
this.onUpdateOnHook();
|
||||
}
|
||||
|
||||
//打开Demo页面
|
||||
|
Reference in New Issue
Block a user