mirror of
https://gitee.com/jisol/jisol-game/
synced 2025-09-27 02:36:14 +00:00
update
This commit is contained in:
87
JisolGameCocos/assets/script/battle/PVP/GPVPMode.ts
Normal file
87
JisolGameCocos/assets/script/battle/PVP/GPVPMode.ts
Normal file
@@ -0,0 +1,87 @@
|
||||
import { _decorator } from "cc";
|
||||
import GBaseMode from "../GBaseMode";
|
||||
import { GTactical } from "../entity/GTactical";
|
||||
import { Prefab } from "cc";
|
||||
import GRoleEntity from "../base/role/impl/GRoleEntity";
|
||||
import { instantiate } from "cc";
|
||||
import { Vec2 } from "cc";
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
|
||||
|
||||
//PVP 角色
|
||||
export enum GPVPModePlayerEnum{
|
||||
PLAYER, //玩家
|
||||
ENEMY, //敌人
|
||||
}
|
||||
|
||||
//PVP 玩家信息
|
||||
export interface GPVPModePlayerInfo{
|
||||
//阵法
|
||||
tactical: GTactical;
|
||||
//宠物列表
|
||||
roles: any[];
|
||||
}
|
||||
|
||||
/**
|
||||
* PVP 模式
|
||||
*/
|
||||
@ccclass('GPVPMode')
|
||||
export default class GPVPMode extends GBaseMode{
|
||||
|
||||
@property(Prefab)
|
||||
rolePrefab: Prefab = null;
|
||||
|
||||
//玩家信息
|
||||
playerInfo: GPVPModePlayerInfo = { tactical: GTactical.getTactical1(),roles: [{},{},{}] };
|
||||
//敌方信息
|
||||
enemyInfo: GPVPModePlayerInfo = { tactical: GTactical.getTactical2(true),roles: [{},{},{}] };
|
||||
|
||||
//玩家宠物
|
||||
playerRoles: GRoleEntity[] = [];
|
||||
//敌方宠物
|
||||
enemyRoles: GRoleEntity[] = [];
|
||||
|
||||
//玩家位置
|
||||
playerPos: Vec2 = new Vec2(-400,0);
|
||||
//敌方位置
|
||||
enemyPos: Vec2 = new Vec2(400,0);
|
||||
|
||||
|
||||
onSyncInitSuccess(): void {
|
||||
|
||||
//初始化战斗
|
||||
console.log("GPVPMode 模式初始化");
|
||||
|
||||
//生成玩家
|
||||
this.playerInfo.roles.forEach((info,index) => this.onGenRole(GPVPModePlayerEnum.PLAYER,index+1))
|
||||
this.enemyInfo.roles.forEach((info,index) => this.onGenRole(GPVPModePlayerEnum.ENEMY,index+1))
|
||||
|
||||
}
|
||||
|
||||
//生成角色
|
||||
onGenRole(type: GPVPModePlayerEnum,index:number) {
|
||||
|
||||
let pos:Vec2 = this.getInfo(type).tactical.getPosition(index);
|
||||
if(!pos) return;
|
||||
let role = instantiate(this.rolePrefab);
|
||||
let entity = role.getComponent(GRoleEntity)
|
||||
this.addGObject(entity,this.getInfo(type).tactical.getPosition(index,this.getTacticalPos(type)));
|
||||
|
||||
}
|
||||
|
||||
//获取配置
|
||||
getInfo(type: GPVPModePlayerEnum): GPVPModePlayerInfo {
|
||||
if(type == GPVPModePlayerEnum.PLAYER) return this.playerInfo;
|
||||
if(type == GPVPModePlayerEnum.ENEMY) return this.enemyInfo;
|
||||
}
|
||||
|
||||
//获取位置
|
||||
getTacticalPos(type: GPVPModePlayerEnum):Vec2{
|
||||
if(type == GPVPModePlayerEnum.PLAYER) return this.playerPos;
|
||||
if(type == GPVPModePlayerEnum.ENEMY) return this.enemyPos;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
9
JisolGameCocos/assets/script/battle/PVP/GPVPMode.ts.meta
Normal file
9
JisolGameCocos/assets/script/battle/PVP/GPVPMode.ts.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "4.0.23",
|
||||
"importer": "typescript",
|
||||
"imported": true,
|
||||
"uuid": "31e6d29e-41d4-4d7d-a24a-b37f9c0caabd",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
Reference in New Issue
Block a user