185 lines
5.5 KiB
TypeScript
185 lines
5.5 KiB
TypeScript
import { JsonAsset } from 'cc';
|
|
import { TextAsset } from 'cc';
|
|
import { _decorator, Component, Node } from 'cc';
|
|
import { UmLog } from '../../../cc-common/cc-util/UmLog';
|
|
const { ccclass, property } = _decorator;
|
|
|
|
|
|
@ccclass('GameDataConfig')
|
|
export class GameDataConfig extends Component {
|
|
@property(JsonAsset) heroAsset: JsonAsset = null!;
|
|
@property(JsonAsset) enemyAsset: JsonAsset = null!;
|
|
@property(JsonAsset) bossAsset: JsonAsset = null!;
|
|
@property(JsonAsset) activeSkillAsset: JsonAsset = null!;
|
|
@property(JsonAsset) levelDesign: JsonAsset = null!;
|
|
|
|
activeSkillDataConfigMap = {};
|
|
enemyDataConfigMap = {};
|
|
bossDataConfigMap = {};
|
|
|
|
protected onLoad(): void {
|
|
this.convertActiveSkillDataConfig();
|
|
this.convertEnemyDataConfig();
|
|
this.convertBossDataConfig();
|
|
}
|
|
|
|
convertActiveSkillDataConfig()
|
|
{
|
|
for (var i = 0; i < this.activeSkillAsset.json.length; i++) {
|
|
var data = this.activeSkillAsset.json[i];
|
|
var converData = {
|
|
No: data["no"],
|
|
Skill_ID: data["skillid"],
|
|
Skill_Name: data["skillname"],
|
|
LevelSkill: data["levelskill"],
|
|
Visual_Name: data["visualname"],
|
|
DMG: data["dmg"],
|
|
Mana: data["mana"],
|
|
Range: data["range"],
|
|
};
|
|
|
|
this.activeSkillDataConfigMap[converData.Skill_ID] = converData;
|
|
}
|
|
|
|
// this.activeSkillAsset?.destroy();
|
|
}
|
|
|
|
convertEnemyDataConfig() {
|
|
for (var i = 0; i < this.enemyAsset.json.length; i++) {
|
|
var data = this.enemyAsset.json[i];
|
|
var converData = {
|
|
No: data["no"],
|
|
Name_Id: data["nameid"],
|
|
Group: data["group"],
|
|
Visual_Name: data["visualname"],
|
|
Atk: data["atk"],
|
|
Hp: data["hp"],
|
|
Exp: data["exp"],
|
|
AtkSpeed: data["atkspeed"],
|
|
AtkCoolDown: data["atkcooldown"],
|
|
MoveSpeed: data["movespeed"],
|
|
AtkRange: data["atkrange"],
|
|
VisualRange: data["visualrange"],
|
|
AoEDmg: data["aoedmg"],
|
|
AoERange: data["aoerange"],
|
|
};
|
|
|
|
this.enemyDataConfigMap[converData.Name_Id] = converData;
|
|
}
|
|
// this.enemyAsset.destroy();
|
|
}
|
|
|
|
convertBossDataConfig() {
|
|
for (var i = 0; i < this.bossAsset.json.length; i++) {
|
|
var data = this.bossAsset.json[i];
|
|
var converData = {
|
|
No: data["no"],
|
|
Name_Id: data["nameid"],
|
|
Group: data["group"],
|
|
Visual_Name: data["visualname"],
|
|
Atk: data["atk"],
|
|
Hp: data["hp"],
|
|
AtkSpeed: data["atkspeed"],
|
|
Exp: data["exp"],
|
|
MoveSpeed: data["movespeed"],
|
|
AtkRange: data["atkrange"],
|
|
AtkCoolDown: data["atkcooldown"],
|
|
VisualRange: data["visualrange"],
|
|
SkillDmg: data["Skilldmg"],
|
|
SkillEffect: data["skilleffect"],
|
|
};
|
|
|
|
this.bossDataConfigMap[converData.Name_Id] = converData;
|
|
}
|
|
// this.bossAsset.destroy();
|
|
}
|
|
|
|
public ACTIVE_SKILL_USE_INFO = [
|
|
{ skillId: 0, skillName: "Skill 1", mana: 10, useType: 0, useTime: 2 },
|
|
{ skillId: 1, skillName: "Skill 2", mana: 15, useType: 1, useTime: 1 },
|
|
{ skillId: 2, skillName: "Skill 3", mana: 30, useType: 0, useTime: 10.0 },
|
|
];
|
|
|
|
getActiveSkill(level: number = 1): ActiveSkillData[] {
|
|
return [this.activeSkillDataConfigMap[`AS1|${level}`], this.activeSkillDataConfigMap[`AS2|${level}`], this.activeSkillDataConfigMap[`AS3|${level}`]];
|
|
}
|
|
|
|
public HERO_CONTROL_CONFIG = {
|
|
joystick_speed: 5
|
|
}
|
|
|
|
public stageInfo = {
|
|
creep: 3, boss: 1
|
|
}
|
|
|
|
protected start(): void {
|
|
UmLog.log("hero json => ", this.getHeroDataByLevel(1));
|
|
|
|
UmLog.log("leveldesign json => ", this.getLevelDesignByLevel(1).goldcollect);
|
|
}
|
|
|
|
public getHeroDataByLevel(level: number): any
|
|
{
|
|
var data = this.heroAsset.json[level - 1];
|
|
var result = {
|
|
Level: data["level"],
|
|
Atk: data["atk"],
|
|
Hp: data["hp"],
|
|
AtkRange: data["atkrange"],
|
|
AtkSpeed: data["atkspeed"],
|
|
AtkCoolDown: data["atkcooldown"],
|
|
ManaMax: data["manamax"],
|
|
ManaGenerate: data["managenerate"],
|
|
HpHeal: data["hpheal"],
|
|
Exp: data["exp"],
|
|
AoEDmg: data["aoedmg"],
|
|
AoERange: data["aoerange"],
|
|
|
|
};
|
|
return result;
|
|
}
|
|
|
|
public getEnemyDataConfigById(enemyId: string)
|
|
{
|
|
return this.enemyDataConfigMap[enemyId];
|
|
}
|
|
|
|
public getBossDataConfigById(bossId: string) {
|
|
return this.bossDataConfigMap[bossId];
|
|
}
|
|
|
|
public getLevelDesignByLevel(level: number): LevelDesignInfo
|
|
{
|
|
var result: LevelDesignInfo = JSON.parse(JSON.stringify(this.levelDesign.json[level - 1]));
|
|
return result;
|
|
}
|
|
}
|
|
|
|
|
|
export interface ActiveSkillData {
|
|
No: number;
|
|
Skill_ID: string;
|
|
Skill_Name: string;
|
|
LevelSkill: number;
|
|
Visual_Name: string;
|
|
DMG: number;
|
|
Mana: number;
|
|
Range: number
|
|
|
|
}
|
|
|
|
export interface StageInfo
|
|
{
|
|
creep: number;
|
|
boos: number;
|
|
}
|
|
|
|
export interface LevelDesignInfo {
|
|
level: number;
|
|
atkratio: number;
|
|
hpratio: number;
|
|
expratio: number;
|
|
goldcollect: number;
|
|
formations: string;
|
|
reward: string;
|
|
} |