怪物根据怪物等级 掉落石头和经验
This commit is contained in:
@@ -13,6 +13,8 @@ lv2:20个
|
|||||||
lv3:40个
|
lv3:40个
|
||||||
...以此类推,
|
...以此类推,
|
||||||
每达到一次要求 可以选择获取当前还未获取的装备,或升级现有装备,武器,盾牌,饰品,共用一个装备石要求池(如lv1 选择了1级武器,lv2 可以选择升级武器到lv2,或者获取lv1的盾牌和饰品)
|
每达到一次要求 可以选择获取当前还未获取的装备,或升级现有装备,武器,盾牌,饰品,共用一个装备石要求池(如lv1 选择了1级武器,lv2 可以选择升级武器到lv2,或者获取lv1的盾牌和饰品)
|
||||||
|
## 关卡系统
|
||||||
|
每波遇到的怪物随机出现,组合随机,随着波数 怪物等级提升
|
||||||
## 英雄等级成长系统设计文档
|
## 英雄等级成长系统设计文档
|
||||||
### 基础类型 (HType) (英雄职业 暂时 无特殊区别)
|
### 基础类型 (HType) (英雄职业 暂时 无特殊区别)
|
||||||
- **战士 (warrior = 0)**:
|
- **战士 (warrior = 0)**:
|
||||||
@@ -221,3 +223,218 @@ getEquipUpgradeCost(equipLevel, quality) {
|
|||||||
- `getMonsterLevel(waveNumber)`: 获取怪物等级
|
- `getMonsterLevel(waveNumber)`: 获取怪物等级
|
||||||
- `getEquipStoneDrops(monsterType, level)`: 计算装备石掉落
|
- `getEquipStoneDrops(monsterType, level)`: 计算装备石掉落
|
||||||
- `getEquipUpgradeCost(equipLevel, quality)`: 计算装备升级成本
|
- `getEquipUpgradeCost(equipLevel, quality)`: 计算装备升级成本
|
||||||
|
|
||||||
|
## 当前设计中的肉鸽元素 ✅
|
||||||
|
|
||||||
|
### 已有的肉鸽特征:
|
||||||
|
1. **随机性**:
|
||||||
|
- 怪物随机出现,组合随机
|
||||||
|
- Boss随机
|
||||||
|
- 装备获取随机选择
|
||||||
|
|
||||||
|
2. **永久死亡**:
|
||||||
|
- 主英雄死亡后游戏失败
|
||||||
|
|
||||||
|
3. **进度系统**:
|
||||||
|
- 装备石积累系统
|
||||||
|
- 装备升级路径
|
||||||
|
|
||||||
|
4. **分数排名**:
|
||||||
|
- 计算最终分值并排名
|
||||||
|
|
||||||
|
## 需要强化的肉鸽元素 🔧
|
||||||
|
|
||||||
|
### 1. **随机事件系统**
|
||||||
|
```typescript
|
||||||
|
// 建议添加的随机事件
|
||||||
|
const RandomEvents = {
|
||||||
|
// 战斗事件
|
||||||
|
BOSS_APPEAR: "随机Boss出现",
|
||||||
|
ELITE_SPAWN: "精英怪物出现",
|
||||||
|
WAVE_SKIP: "跳过一波获得奖励",
|
||||||
|
|
||||||
|
// 奖励事件
|
||||||
|
EQUIPMENT_CHEST: "装备宝箱",
|
||||||
|
SKILL_UPGRADE: "技能升级",
|
||||||
|
STAT_BOOST: "属性提升",
|
||||||
|
|
||||||
|
// 挑战事件
|
||||||
|
DOUBLE_WAVE: "双倍怪物波次",
|
||||||
|
TIME_LIMIT: "限时挑战",
|
||||||
|
RESTRICTED_EQUIP: "装备限制挑战"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. **Build系统(构建路径)**
|
||||||
|
```typescript
|
||||||
|
// 建议添加的Build要素
|
||||||
|
const BuildElements = {
|
||||||
|
// 技能组合
|
||||||
|
SKILL_SYNERGIES: {
|
||||||
|
BURN_BUILD: "燃烧流",
|
||||||
|
CRIT_BUILD: "暴击流",
|
||||||
|
TANK_BUILD: "坦克流"
|
||||||
|
},
|
||||||
|
|
||||||
|
// 装备组合
|
||||||
|
EQUIPMENT_SETS: {
|
||||||
|
WARRIOR_SET: "战士套装",
|
||||||
|
MAGE_SET: "法师套装",
|
||||||
|
HYBRID_SET: "混合套装"
|
||||||
|
},
|
||||||
|
|
||||||
|
// 随机天赋
|
||||||
|
RANDOM_TALENTS: [
|
||||||
|
"双倍暴击伤害",
|
||||||
|
"攻击速度提升",
|
||||||
|
"生命偷取",
|
||||||
|
"技能冷却减少"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. **关卡多样性**
|
||||||
|
```typescript
|
||||||
|
// 建议添加的关卡类型
|
||||||
|
const LevelTypes = {
|
||||||
|
NORMAL_WAVE: "普通波次",
|
||||||
|
BOSS_WAVE: "Boss战",
|
||||||
|
ELITE_WAVE: "精英怪波次",
|
||||||
|
EVENT_WAVE: "特殊事件波次",
|
||||||
|
REST_WAVE: "休息/商店波次"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. **Meta进度系统**
|
||||||
|
```typescript
|
||||||
|
// 建议添加的Meta进度
|
||||||
|
const MetaProgression = {
|
||||||
|
// 永久解锁
|
||||||
|
UNLOCK_HEROES: "解锁新英雄",
|
||||||
|
UNLOCK_EQUIPMENT: "解锁新装备类型",
|
||||||
|
UNLOCK_SKILLS: "解锁新技能",
|
||||||
|
|
||||||
|
// 起始加成
|
||||||
|
STARTING_BONUS: "起始装备/属性加成",
|
||||||
|
REROLL_CHANCES: "重新选择次数",
|
||||||
|
|
||||||
|
// 难度调节
|
||||||
|
DIFFICULTY_MODIFIERS: "难度调节器"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## 建议的肉鸽塔防改进方案 📋
|
||||||
|
|
||||||
|
### 1. **随机地图系统**
|
||||||
|
```typescript
|
||||||
|
// 每局游戏随机生成不同的地图布局
|
||||||
|
const MapVariations = {
|
||||||
|
LANE_COUNT: [1, 2, 3], // 随机1-3条路径
|
||||||
|
OBSTACLES: ["障碍物", "减速区", "伤害区"],
|
||||||
|
SPECIAL_TILES: ["商店", "休息点", "挑战点"]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. **动态难度调整**
|
||||||
|
```typescript
|
||||||
|
// 根据玩家表现动态调整难度
|
||||||
|
const DynamicDifficulty = {
|
||||||
|
// 玩家表现评估
|
||||||
|
ASSESS_PLAYER_STRENGTH: (equipment, level, performance) => {
|
||||||
|
return difficultyMultiplier;
|
||||||
|
},
|
||||||
|
|
||||||
|
// 动态怪物调整
|
||||||
|
ADJUST_MONSTER_STATS: (baseStats, difficulty) => {
|
||||||
|
return adjustedStats;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. **分支选择系统**
|
||||||
|
```typescript
|
||||||
|
// 每波结束后提供选择
|
||||||
|
const WaveChoices = {
|
||||||
|
// 路径选择
|
||||||
|
PATH_A: "高风险高回报路径",
|
||||||
|
PATH_B: "稳定发展路径",
|
||||||
|
PATH_C: "特殊事件路径",
|
||||||
|
|
||||||
|
// 奖励选择
|
||||||
|
REWARD_CHOICES: [
|
||||||
|
"装备石 x10",
|
||||||
|
"技能升级机会",
|
||||||
|
"属性永久提升",
|
||||||
|
"跳过下一波"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## 总结建议
|
||||||
|
|
||||||
|
当前设计已经具备了肉鸽的基础框架,建议重点强化以下方面:
|
||||||
|
|
||||||
|
1. **增加随机事件系统** - 让每局游戏都有不同的体验
|
||||||
|
2. **完善Build系统** - 提供多样化的构建路径
|
||||||
|
3. **添加Meta进度** - 让玩家有长期目标
|
||||||
|
4. **强化选择机制** - 增加策略深度
|
||||||
|
5. **优化随机性** - 平衡随机性和策略性
|
||||||
|
|
||||||
|
这样就能将现有的塔防游戏真正转化为具有深度和重玩价值的肉鸽塔防游戏。
|
||||||
|
|
||||||
|
|
||||||
|
「主线固定波次 + 限时远征」双模式
|
||||||
|
mermaid图片代码merm复制graph TD
|
||||||
|
A[新局开始] --> B{主线模式:固定30波}
|
||||||
|
B --> C[击败4个Boss通关]
|
||||||
|
C --> D[结算基础分+事件分]
|
||||||
|
C --> E{限时远征模式}
|
||||||
|
E -->|30秒倒计时| F[无限波次冲刺]
|
||||||
|
F --> G[每多1波+200分]
|
||||||
|
G --> H[死亡/超时结算远征分]30秒倒计时
|
||||||
|
新局开始主线模式:固定30波击败4个Boss通关结算基础分+事件分限时远征模式无限波次冲刺每多1波+200分死亡/超时结算远征分
|
||||||
|
|
||||||
|
设计精髓
|
||||||
|
|
||||||
|
主线固定波次(核心体验)
|
||||||
|
|
||||||
|
节奏:30波(5-8分钟)含4个Boss
|
||||||
|
胜利条件:击败最终Boss
|
||||||
|
核心价值:
|
||||||
|
|
||||||
|
每10波设里程碑事件
|
||||||
|
事件选择影响Boss特性(选A事件→Boss弱火)
|
||||||
|
终点明确激发冲刺动力
|
||||||
|
|
||||||
|
限时远征(延伸体验)
|
||||||
|
|
||||||
|
触发条件:主线通关后自动进入30秒倒计时挑战
|
||||||
|
规则:
|
||||||
|
|
||||||
|
继承主线最终Build继续战斗
|
||||||
|
30秒内击杀怪物可延长倒计时(+3秒/怪)
|
||||||
|
每秒自动累计远征分
|
||||||
|
|
||||||
|
|
||||||
|
价值:
|
||||||
|
|
||||||
|
神装Build的高光时刻(吸血刀1v100)
|
||||||
|
时间压力下极限微操(冲排名核心区)
|
||||||
|
自然终结防沉迷(倒计时归零强制结算)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
玩家类型主线固定波次限时远征小白专注生存10波,解锁第一个里程碑获正反馈可跳过,避免因操作弱被扣分进阶20波后策略配装针对Boss弱点用主线Build挑战个人最佳(不求排名)硬核速通主线(冲时间分),省资源憋终局神装30秒极限操作刷远征分,争夺全球排名
|
||||||
|
|
||||||
|
分数系统精算设计
|
||||||
|
总分 = 主线分 × 远征倍率
|
||||||
|
|
||||||
|
主线分(满分1000):
|
||||||
|
(通关波次×10)+(剩余血量×0.2)+∑(事件选择价值)−(耗时秒数×0.5)
|
||||||
|
|
||||||
|
远征倍率(1.0-3.0):
|
||||||
|
倍率=1.0+0.02×远征波次
|
||||||
|
例:主线900分 + 远征50波 → 总分 = 900×2.0=1800
|
||||||
|
→ 避免无限分膨胀,让休闲玩家主线分也能竞争
|
||||||
|
|
||||||
|
远征10波 送一张免广告券,最多1张,仅远征中使用
|
||||||
@@ -1,16 +1,4 @@
|
|||||||
export const MonsetList = {
|
import { HQuality } from "./heroSet";
|
||||||
1:{
|
|
||||||
1:[5001],
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
export const BossList = {
|
|
||||||
1:{
|
|
||||||
1:[5001],
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// 波次配置表 - 根据Design.md中的怪物波次系统设计
|
// 波次配置表 - 根据Design.md中的怪物波次系统设计
|
||||||
export const WaveConfig = {
|
export const WaveConfig = {
|
||||||
@@ -226,22 +214,37 @@ export const getInfiniteWaveConfig = (waveNumber: number) => {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// 获取怪物等级
|
// 获取怪物等级
|
||||||
export const getMonsterLevel = (waveNumber: number): number => {
|
export const getMonsterLevel = (waveNumber: number): number => {
|
||||||
return 1 + Math.floor(waveNumber / 1);
|
return 1 + Math.floor(waveNumber / 1);
|
||||||
};
|
};
|
||||||
|
|
||||||
// 获取装备石掉落数量
|
// 获取装备石掉落数量
|
||||||
export const getEquipStoneDrops = (monsterType: string, level: number = 1): number => {
|
export const getStoneDrops = (monsterType: number, level: number = 1): {type: string, count: number} => {
|
||||||
const baseDrops = {
|
const baseDrops = {
|
||||||
"warrior": 2, // 普通怪物
|
[HQuality.GREEN]: 2, // 普通怪物
|
||||||
"remote": 3, // 远程怪物
|
[HQuality.BLUE]: 4, // 精英怪物
|
||||||
"mage": 4 // 法师怪物
|
[HQuality.PURPLE]: 8 // Boss怪物
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 50%概率掉落装备石,50%概率掉落技能石
|
||||||
|
const dropType = Math.random() < 0.5 ? "equip" : "skill";
|
||||||
|
const dropCount = Math.floor(baseDrops[monsterType] * (1 + (level - 1) * 0.2));
|
||||||
|
|
||||||
|
return {
|
||||||
|
type: dropType,
|
||||||
|
count: dropCount
|
||||||
|
};
|
||||||
|
};
|
||||||
|
export const getExpDrops = (monsterType: number, level: number = 1): number => {
|
||||||
|
const baseDrops = {
|
||||||
|
[HQuality.GREEN]: 10, // 普通怪物
|
||||||
|
[HQuality.BLUE]: 20, // 精英怪物
|
||||||
|
[HQuality.PURPLE]: 40 // Boss怪物
|
||||||
|
};
|
||||||
return Math.floor(baseDrops[monsterType] * (1 + (level - 1) * 0.2));
|
return Math.floor(baseDrops[monsterType] * (1 + (level - 1) * 0.2));
|
||||||
};
|
}
|
||||||
|
|
||||||
// 获取装备升级成本
|
// 获取装备升级成本
|
||||||
export const getEquipUpgradeCost = (equipLevel: number, quality: number): number => {
|
export const getEquipUpgradeCost = (equipLevel: number, quality: number): number => {
|
||||||
const baseCosts = {
|
const baseCosts = {
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import { v3 } from "cc"
|
import { v3 } from "cc"
|
||||||
import { Quality } from "./CardSet"
|
|
||||||
import { BuffAttr } from "./SkillSet"
|
import { BuffAttr } from "./SkillSet"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -29,10 +28,7 @@ export enum HType {
|
|||||||
remote = 1,
|
remote = 1,
|
||||||
mage = 2,
|
mage = 2,
|
||||||
}
|
}
|
||||||
export enum HeroFac {
|
|
||||||
hero = 0,
|
|
||||||
enemy = 1,
|
|
||||||
}
|
|
||||||
export const getHeroList = (is_master:number=0)=>{
|
export const getHeroList = (is_master:number=0)=>{
|
||||||
if(is_master==1){
|
if(is_master==1){
|
||||||
return Masters
|
return Masters
|
||||||
@@ -44,10 +40,6 @@ export const HeroList = [5021,5022,5023,5024,5025,5026,5027,5028]
|
|||||||
export const MonList = [5201,5202,5203,5204,5205,5206,5216,5217,5218,5219,5220,5221,5222,5223,5224,5225,5226,5227]
|
export const MonList = [5201,5202,5203,5204,5205,5206,5216,5217,5218,5219,5220,5221,5222,5223,5224,5225,5226,5227]
|
||||||
export const Masters = [5001,5002,5003,5004]
|
export const Masters = [5001,5002,5003,5004]
|
||||||
|
|
||||||
export const HeroSet = {
|
|
||||||
Start_x:[-200,-260,-320],
|
|
||||||
Start_y:[70,0,-70]
|
|
||||||
}
|
|
||||||
export const HeroPos={
|
export const HeroPos={
|
||||||
0:{pos:v3(-290,10,0)},
|
0:{pos:v3(-290,10,0)},
|
||||||
1:{pos:v3(-200,0,0)},
|
1:{pos:v3(-200,0,0)},
|
||||||
@@ -328,110 +320,110 @@ export const HeroInfo = {
|
|||||||
|
|
||||||
|
|
||||||
//怪物
|
//怪物
|
||||||
5201:{uuid:5201,name:"兽人战士",path:"mor1", quality:HQuality.BLUE,lv:1,kind:1,
|
5201:{uuid:5201,name:"兽人战士",path:"mor1", quality:HQuality.GREEN,lv:1,kind:1,
|
||||||
type:HType.warrior,hp:25,ap:8,dis:300,cd:1.5,speed:45,skills:[6007],
|
type:HType.warrior,hp:25,ap:8,dis:200,cd:1.5,speed:45,skills:[6007],
|
||||||
buff:[
|
buff:[
|
||||||
|
|
||||||
],info:"普通怪物-战士型"},
|
],info:"普通怪物-战士型"},
|
||||||
|
|
||||||
5202:{uuid:5202,name:"兽人刺客",path:"mor2", quality:HQuality.BLUE,lv:1,kind:1,
|
5202:{uuid:5202,name:"兽人刺客",path:"mor2", quality:HQuality.GREEN,lv:1,kind:1,
|
||||||
type:HType.warrior,hp:25,ap:8,dis:300,cd:1.5,speed:45,skills:[6007],
|
type:HType.warrior,hp:25,ap:8,dis:200,cd:1.5,speed:45,skills:[6007],
|
||||||
buff:[
|
buff:[
|
||||||
|
|
||||||
],info:"普通怪物-战士型"},
|
],info:"普通怪物-战士型"},
|
||||||
|
|
||||||
5203:{uuid:5203,name:"兽人护卫",path:"mor3", quality:HQuality.BLUE,lv:1,kind:1,
|
5203:{uuid:5203,name:"兽人护卫",path:"mor3", quality:HQuality.GREEN,lv:1,kind:1,
|
||||||
type:HType.remote,hp:20,ap:12,dis:500,cd:1.5,speed:50,skills:[6007],
|
type:HType.remote,hp:20,ap:12,dis:200,cd:1.5,speed:50,skills:[6007],
|
||||||
buff:[
|
buff:[
|
||||||
|
|
||||||
],info:"远程怪物-高伤害"},
|
],info:"远程怪物-高伤害"},
|
||||||
|
|
||||||
5204:{uuid:5204,name:"石卫", path:"mgem1",quality:HQuality.BLUE,lv:1,kind:1,
|
5204:{uuid:5204,name:"石卫", path:"mgem1",quality:HQuality.GREEN,lv:1,kind:1,
|
||||||
type:HType.warrior,hp:25,ap:8,dis:300,cd:1.5,speed:45,skills:[6007],
|
type:HType.warrior,hp:25,ap:8,dis:200,cd:1.5,speed:45,skills:[6007],
|
||||||
buff:[
|
buff:[
|
||||||
|
|
||||||
],info:"普通怪物-战士型"},
|
],info:"普通怪物-战士型"},
|
||||||
|
|
||||||
5205:{uuid:5205,name:"土卫", path:"mgem2",quality:HQuality.BLUE,lv:1,kind:1,
|
5205:{uuid:5205,name:"土卫", path:"mgem2",quality:HQuality.GREEN,lv:1,kind:1,
|
||||||
type:HType.warrior,hp:25,ap:8,dis:300,cd:1.5,speed:45,skills:[6007],
|
type:HType.warrior,hp:25,ap:8,dis:200,cd:1.5,speed:45,skills:[6007],
|
||||||
buff:[
|
buff:[
|
||||||
|
|
||||||
],info:"普通怪物-战士型"},
|
],info:"普通怪物-战士型"},
|
||||||
|
|
||||||
5206:{uuid:5206,name:"树人", path:"mgem3",quality:HQuality.BLUE,lv:1,kind:1,
|
5206:{uuid:5206,name:"树人", path:"mgem3",quality:HQuality.GREEN,lv:1,kind:1,
|
||||||
type:HType.warrior,hp:25,ap:8,dis:300,cd:1.5,speed:45,skills:[6007],
|
type:HType.warrior,hp:25,ap:8,dis:200,cd:1.5,speed:45,skills:[6007],
|
||||||
buff:[
|
buff:[
|
||||||
|
|
||||||
],info:"普通怪物-战士型"},
|
],info:"普通怪物-战士型"},
|
||||||
|
|
||||||
5216:{uuid:5216,name:"元素1", path:"my1", quality:HQuality.BLUE,lv:2,kind:1,
|
5216:{uuid:5216,name:"元素1", path:"my1", quality:HQuality.GREEN,lv:2,kind:1,
|
||||||
type:HType.mage,hp:18,ap:15,dis:600,cd:1.2,speed:40,skills:[6007],
|
type:HType.mage,hp:18,ap:15,dis:350,cd:1.2,speed:40,skills:[6007],
|
||||||
buff:[
|
buff:[
|
||||||
|
|
||||||
],info:"法师怪物-高伤害脆弱"},
|
],info:"法师怪物-高伤害脆弱"},
|
||||||
|
|
||||||
5217:{uuid:5217,name:"元素2", path:"my2", quality:HQuality.BLUE,lv:2,kind:1,
|
5217:{uuid:5217,name:"元素2", path:"my2", quality:HQuality.GREEN,lv:2,kind:1,
|
||||||
type:HType.mage,hp:18,ap:15,dis:600,cd:1.2,speed:40,skills:[6007],
|
type:HType.mage,hp:18,ap:15,dis:350,cd:1.2,speed:40,skills:[6007],
|
||||||
buff:[
|
buff:[
|
||||||
|
|
||||||
],info:"法师怪物-高伤害脆弱"},
|
],info:"法师怪物-高伤害脆弱"},
|
||||||
|
|
||||||
5218:{uuid:5218,name:"元素3", path:"my3", quality:HQuality.BLUE,lv:2,kind:1,
|
5218:{uuid:5218,name:"元素3", path:"my3", quality:HQuality.GREEN,lv:2,kind:1,
|
||||||
type:HType.mage,hp:18,ap:15,dis:600,cd:1.2,speed:40,skills:[6007],
|
type:HType.mage,hp:18,ap:15,dis:350,cd:1.2,speed:40,skills:[6007],
|
||||||
buff:[
|
buff:[
|
||||||
|
|
||||||
],info:"法师怪物-高伤害脆弱"},
|
],info:"法师怪物-高伤害脆弱"},
|
||||||
|
|
||||||
5219:{uuid:5219,name:"牛头战士",path:"mn1", quality:HQuality.BLUE,lv:2,kind:1,
|
5219:{uuid:5219,name:"牛头战士",path:"mn1", quality:HQuality.GREEN,lv:2,kind:1,
|
||||||
type:HType.warrior,hp:25,ap:8,dis:300,cd:1.5,speed:45,skills:[6007],
|
type:HType.warrior,hp:25,ap:8,dis:200,cd:1.5,speed:45,skills:[6007],
|
||||||
buff:[
|
buff:[
|
||||||
|
|
||||||
],info:"普通怪物-战士型"},
|
],info:"普通怪物-战士型"},
|
||||||
|
|
||||||
5220:{uuid:5220,name:"牛头战士",path:"mn2", quality:HQuality.BLUE,lv:1,kind:1,
|
5220:{uuid:5220,name:"牛头战士",path:"mn2", quality:HQuality.GREEN,lv:1,kind:1,
|
||||||
type:HType.remote,hp:20,ap:12,dis:500,cd:1.5,speed:50,skills:[6007],
|
type:HType.remote,hp:20,ap:12,dis:200,cd:1.5,speed:50,skills:[6007],
|
||||||
buff:[
|
buff:[
|
||||||
|
|
||||||
],info:"远程怪物-高伤害"},
|
],info:"远程怪物-高伤害"},
|
||||||
|
|
||||||
5221:{uuid:5221,name:"牛头战士",path:"mn3", quality:HQuality.BLUE,lv:1,kind:1,
|
5221:{uuid:5221,name:"牛头战士",path:"mn3", quality:HQuality.GREEN,lv:1,kind:1,
|
||||||
type:HType.warrior,hp:25,ap:8,dis:300,cd:1.5,speed:45,skills:[6007],
|
type:HType.warrior,hp:25,ap:8,dis:200,cd:1.5,speed:45,skills:[6007],
|
||||||
buff:[
|
buff:[
|
||||||
|
|
||||||
],info:"普通怪物-战士型"},
|
],info:"普通怪物-战士型"},
|
||||||
|
|
||||||
5222:{uuid:5222,name:"独眼巨人",path:"md1", quality:HQuality.BLUE,lv:1,kind:1,
|
5222:{uuid:5222,name:"独眼巨人",path:"md1", quality:HQuality.GREEN,lv:1,kind:1,
|
||||||
type:HType.warrior,hp:25,ap:8,dis:300,cd:1.5,speed:45,skills:[6007],
|
type:HType.warrior,hp:25,ap:8,dis:200,cd:1.5,speed:45,skills:[6007],
|
||||||
buff:[
|
buff:[
|
||||||
|
|
||||||
],info:"普通怪物-战士型"},
|
],info:"普通怪物-战士型"},
|
||||||
|
|
||||||
5223:{uuid:5223,name:"独眼巨人",path:"md2", quality:HQuality.BLUE,lv:1,kind:1,
|
5223:{uuid:5223,name:"独眼巨人",path:"md2", quality:HQuality.GREEN,lv:1,kind:1,
|
||||||
type:HType.warrior,hp:25,ap:8,dis:300,cd:1.5,speed:45,skills:[6007],
|
type:HType.warrior,hp:25,ap:8,dis:200,cd:1.5,speed:45,skills:[6007],
|
||||||
buff:[
|
buff:[
|
||||||
|
|
||||||
],info:"普通怪物-战士型"},
|
],info:"普通怪物-战士型"},
|
||||||
|
|
||||||
5224:{uuid:5224,name:"独眼巨人",path:"md3", quality:HQuality.BLUE,lv:1,kind:1,
|
5224:{uuid:5224,name:"独眼巨人",path:"md3", quality:HQuality.GREEN,lv:1,kind:1,
|
||||||
type:HType.remote,hp:20,ap:12,dis:500,cd:1.5,speed:50,skills:[6007],
|
type:HType.remote,hp:20,ap:12,dis:200,cd:1.5,speed:50,skills:[6007],
|
||||||
buff:[
|
buff:[
|
||||||
|
|
||||||
],info:"远程怪物-高伤害"},
|
],info:"远程怪物-高伤害"},
|
||||||
|
|
||||||
5225:{uuid:5225,name:"精英独眼",path:"md4", quality:HQuality.BLUE,lv:1,kind:1,
|
5225:{uuid:5225,name:"精英独眼",path:"md4", quality:HQuality.BLUE,lv:1,kind:1,
|
||||||
type:HType.mage,hp:18,ap:15,dis:600,cd:1.2,speed:40,skills:[6007],
|
type:HType.mage,hp:18,ap:15,dis:400,cd:1.2,speed:40,skills:[6007],
|
||||||
buff:[
|
buff:[
|
||||||
|
|
||||||
],info:"法师怪物-高伤害脆弱"},
|
],info:"法师怪物-高伤害脆弱"},
|
||||||
|
|
||||||
5226:{uuid:5226,name:"精英牛头",path:"mn4", quality:HQuality.BLUE,lv:1,kind:1,
|
5226:{uuid:5226,name:"精英牛头",path:"mn4", quality:HQuality.BLUE,lv:1,kind:1,
|
||||||
type:HType.mage,hp:18,ap:15,dis:600,cd:1.2,speed:40,skills:[6007],
|
type:HType.mage,hp:18,ap:15,dis:400,cd:1.2,speed:40,skills:[6007],
|
||||||
buff:[
|
buff:[
|
||||||
|
|
||||||
],info:"法师怪物-高伤害脆弱"},
|
],info:"法师怪物-高伤害脆弱"},
|
||||||
|
|
||||||
5227:{uuid:5227,name:"精英兽人",path:"mor4", quality:HQuality.BLUE,lv:1,kind:1,
|
5227:{uuid:5227,name:"精英兽人",path:"mor4", quality:HQuality.BLUE,lv:1,kind:1,
|
||||||
type:HType.mage,hp:18,ap:15,dis:600,cd:1.2,speed:40,skills:[6007],
|
type:HType.mage,hp:18,ap:15,dis:400,cd:1.2,speed:40,skills:[6007],
|
||||||
buff:[
|
buff:[
|
||||||
|
|
||||||
],info:"法师怪物-高伤害脆弱"}
|
],info:"法师怪物-高伤害脆弱"}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/modu
|
|||||||
import { smc } from "../common/SingletonModuleComp";
|
import { smc } from "../common/SingletonModuleComp";
|
||||||
import { HeroModelComp } from "./HeroModelComp";
|
import { HeroModelComp } from "./HeroModelComp";
|
||||||
import { HeroViewComp } from "./HeroViewComp";
|
import { HeroViewComp } from "./HeroViewComp";
|
||||||
import { HeroInfo, HeroPos, HeroSet } from "../common/config/heroSet";
|
import { HeroInfo, HeroPos } from "../common/config/heroSet";
|
||||||
|
|
||||||
const { ccclass, property } = _decorator;
|
const { ccclass, property } = _decorator;
|
||||||
|
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ import { oops } from "db://oops-framework/core/Oops";
|
|||||||
import { GameEvent } from "../common/config/GameEvent";
|
import { GameEvent } from "../common/config/GameEvent";
|
||||||
import { FightConComp } from "../map/FightConComp";
|
import { FightConComp } from "../map/FightConComp";
|
||||||
import { EquipSpecialAttr } from "../common/config/Equips";
|
import { EquipSpecialAttr } from "../common/config/Equips";
|
||||||
import { FightSet, TooltipTypes } from "../common/config/Mission";
|
import { FightSet, getExpDrops, getStoneDrops, TooltipTypes } from "../common/config/Mission";
|
||||||
import { getApIncrease, getHpIncrease, getUpExp, HeroPos } from "../common/config/heroSet";
|
import { getApIncrease, getHpIncrease, getUpExp, HeroInfo, HeroPos } from "../common/config/heroSet";
|
||||||
import { FriendModelComp } from "./FriendModel";
|
import { FriendModelComp } from "./FriendModel";
|
||||||
import { MasterModelComp } from "./MasterModel";
|
import { MasterModelComp } from "./MasterModel";
|
||||||
import { RandomManager } from "db://oops-framework/core/common/random/RandomManager";
|
import { RandomManager } from "db://oops-framework/core/common/random/RandomManager";
|
||||||
@@ -339,16 +339,18 @@ export class HeroViewComp extends CCComp {
|
|||||||
this.do_dead_trigger()
|
this.do_dead_trigger()
|
||||||
this.Friend_alive_cd=new Timer(this.FIGHTCON.friend_alive_cd)
|
this.Friend_alive_cd=new Timer(this.FIGHTCON.friend_alive_cd)
|
||||||
console.log("[HeroViewComp]:角色死亡",this.hero_uuid)
|
console.log("[HeroViewComp]:角色死亡",this.hero_uuid)
|
||||||
if(this.is_kalami){
|
|
||||||
oops.message.dispatchEvent(GameEvent.EXPUP,{exp:50})
|
|
||||||
oops.message.dispatchEvent(GameEvent.SKILL_STONE_UP,10)
|
|
||||||
oops.message.dispatchEvent(GameEvent.EQUIP_STONE_UP,10)
|
|
||||||
|
|
||||||
|
if(this.fac==FacSet.MON){
|
||||||
|
let exp=getExpDrops(HeroInfo[this.hero_uuid].quality,this.lv)
|
||||||
|
let stone=getStoneDrops(HeroInfo[this.hero_uuid].quality,this.lv)
|
||||||
|
oops.message.dispatchEvent(GameEvent.EXPUP,{exp:exp})
|
||||||
|
if(stone.type=="equip"){
|
||||||
|
oops.message.dispatchEvent(GameEvent.EQUIP_STONE_UP,stone.count)
|
||||||
|
}else{
|
||||||
|
oops.message.dispatchEvent(GameEvent.SKILL_STONE_UP,stone.count)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(this.is_boss){
|
|
||||||
oops.message.dispatchEvent(GameEvent.EXPUP,{exp:100})
|
|
||||||
|
|
||||||
}
|
|
||||||
if(this.is_master){
|
if(this.is_master){
|
||||||
console.log("[HeroViewComp]:英雄死亡")
|
console.log("[HeroViewComp]:英雄死亡")
|
||||||
oops.message.dispatchEvent(GameEvent.FightEnd,{victory:false})
|
oops.message.dispatchEvent(GameEvent.FightEnd,{victory:false})
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import { _decorator, Component, Label, Node, resources, Sprite, SpriteAtlas } from 'cc';
|
import { _decorator, Component, Label, Node, resources, Sprite, SpriteAtlas } from 'cc';
|
||||||
import { HeroInfo } from '../common/config/heroSet';
|
|
||||||
import { SkillSet } from '../common/config/SkillSet';
|
import { SkillSet } from '../common/config/SkillSet';
|
||||||
import { oops } from '../../../../extensions/oops-plugin-framework/assets/core/Oops';
|
import { oops } from '../../../../extensions/oops-plugin-framework/assets/core/Oops';
|
||||||
import { UIID } from '../common/config/GameUIConfig';
|
import { UIID } from '../common/config/GameUIConfig';
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import { _decorator, Animation, Label, resources, SpriteAtlas,Sprite } from "cc"
|
|||||||
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
|
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
|
||||||
import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
|
import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
|
||||||
import { GameEvent } from "../common/config/GameEvent";
|
import { GameEvent } from "../common/config/GameEvent";
|
||||||
import { HeroInfo, HeroList } from "../common/config/heroSet";
|
import { HeroInfo} from "../common/config/heroSet";
|
||||||
import { RandomManager } from "db://oops-framework/core/common/random/RandomManager";
|
import { RandomManager } from "db://oops-framework/core/common/random/RandomManager";
|
||||||
import { oops } from "db://oops-framework/core/Oops";
|
import { oops } from "db://oops-framework/core/Oops";
|
||||||
import { HeroModelComp } from "../hero/HeroModelComp";
|
import { HeroModelComp } from "../hero/HeroModelComp";
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/O
|
|||||||
import { UIID } from "../common/config/GameUIConfig";
|
import { UIID } from "../common/config/GameUIConfig";
|
||||||
import { Items } from "../common/config/Items";
|
import { Items } from "../common/config/Items";
|
||||||
import { SkillSet } from "../common/config/SkillSet";
|
import { SkillSet } from "../common/config/SkillSet";
|
||||||
import { HeroInfo, HeroSet } from "../common/config/heroSet";
|
import { HeroInfo } from "../common/config/heroSet";
|
||||||
import { Hero } from "../hero/Hero";
|
import { Hero } from "../hero/Hero";
|
||||||
import { HChipComp } from "../hero/HChipComp";
|
import { HChipComp } from "../hero/HChipComp";
|
||||||
import { ItemComp } from "./ItemComp";
|
import { ItemComp } from "./ItemComp";
|
||||||
|
|||||||
@@ -2,8 +2,6 @@ import { instantiate, Label, Prefab, resources, Sprite, SpriteAtlas } from "cc";
|
|||||||
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
|
import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
|
||||||
import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/Oops";
|
import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/Oops";
|
||||||
import { MSCardComp } from "./MSCardComp";
|
import { MSCardComp } from "./MSCardComp";
|
||||||
import { smc } from "../common/SingletonModuleComp";
|
|
||||||
import { HeroInfo } from "../common/config/heroSet";
|
|
||||||
import { SkillSet } from "../common/config/SkillSet";
|
import { SkillSet } from "../common/config/SkillSet";
|
||||||
|
|
||||||
/** MSCard 模块 */
|
/** MSCard 模块 */
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ec
|
|||||||
import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
|
import { CCComp } from "../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
|
||||||
import { Monster } from "../hero/Mon";
|
import { Monster } from "../hero/Mon";
|
||||||
import { BoxSet } from "../common/config/BoxSet";
|
import { BoxSet } from "../common/config/BoxSet";
|
||||||
import { HeroSet, MonSet } from "../common/config/heroSet";
|
import { MonSet } from "../common/config/heroSet";
|
||||||
import { FightSet, Missions, MonNum, WaveConfig, getInfiniteWaveConfig, getMonsterLevel } from "../common/config/Mission";
|
import { FightSet, Missions, MonNum, WaveConfig, getInfiniteWaveConfig, getMonsterLevel } from "../common/config/Mission";
|
||||||
import { RandomManager } from "db://oops-framework/core/common/random/RandomManager";
|
import { RandomManager } from "db://oops-framework/core/common/random/RandomManager";
|
||||||
import { Timer } from "db://oops-framework/core/common/timer/Timer";
|
import { Timer } from "db://oops-framework/core/common/timer/Timer";
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import { oops } from "../../../../extensions/oops-plugin-framework/assets/core/O
|
|||||||
import { GameEvent } from "../common/config/GameEvent";
|
import { GameEvent } from "../common/config/GameEvent";
|
||||||
import { AType, DTType, EType, RType, SkillSet, SType, TGroup } from "../common/config/SkillSet";
|
import { AType, DTType, EType, RType, SkillSet, SType, TGroup } from "../common/config/SkillSet";
|
||||||
import { BoxSet, FacSet } from "../common/config/BoxSet";
|
import { BoxSet, FacSet } from "../common/config/BoxSet";
|
||||||
import { HeroFac, HeroSet } from "../common/config/heroSet";
|
|
||||||
import { HeroViewComp } from "../hero/HeroViewComp";
|
import { HeroViewComp } from "../hero/HeroViewComp";
|
||||||
import { BezierMove } from "../BezierMove/BezierMove";
|
import { BezierMove } from "../BezierMove/BezierMove";
|
||||||
import { FightConComp } from "../map/FightConComp";
|
import { FightConComp } from "../map/FightConComp";
|
||||||
|
|||||||
@@ -2,12 +2,12 @@ import { _decorator, Component, instantiate, Node, Prefab } from 'cc';
|
|||||||
import { SkillCom } from './SkillCom';
|
import { SkillCom } from './SkillCom';
|
||||||
import { ecs } from 'db://oops-framework/libs/ecs/ECS';
|
import { ecs } from 'db://oops-framework/libs/ecs/ECS';
|
||||||
import { Hero } from '../hero/Hero';
|
import { Hero } from '../hero/Hero';
|
||||||
import { BoxSet } from '../common/config/BoxSet';
|
import { BoxSet, FacSet } from '../common/config/BoxSet';
|
||||||
import { Monster } from '../hero/Mon';
|
import { Monster } from '../hero/Mon';
|
||||||
import { HeroViewComp } from '../hero/HeroViewComp';
|
import { HeroViewComp } from '../hero/HeroViewComp';
|
||||||
import { smc } from '../common/SingletonModuleComp';
|
import { smc } from '../common/SingletonModuleComp';
|
||||||
import { HeroInfo } from '../common/config/heroSet';
|
|
||||||
import { oops } from 'db://oops-framework/core/Oops';
|
import { oops } from 'db://oops-framework/core/Oops';
|
||||||
|
import { HeroInfo } from '../common/config/heroSet';
|
||||||
const { ccclass, property } = _decorator;
|
const { ccclass, property } = _decorator;
|
||||||
//这是召唤技能
|
//这是召唤技能
|
||||||
@ccclass('ZhanCom')
|
@ccclass('ZhanCom')
|
||||||
@@ -23,12 +23,12 @@ export class ZhanCom extends Component {
|
|||||||
var node = instantiate(prefab);
|
var node = instantiate(prefab);
|
||||||
node.parent = this.node.parent;
|
node.parent = this.node.parent;
|
||||||
node.setPosition(pos);
|
node.setPosition(pos);
|
||||||
if(this.base.box_group==BoxSet.HERO) {
|
if(this.base.fac==FacSet.HERO) {
|
||||||
hero = ecs.getEntity<Hero>(Hero);
|
hero = ecs.getEntity<Hero>(Hero);
|
||||||
let scale = 1
|
let scale = 1
|
||||||
hero.load(pos,scale,this.base.hero,true,this.base.lv);
|
hero.load(pos,scale,this.base.hero,true,HeroInfo[this.base.hero].lv);
|
||||||
}
|
}
|
||||||
if(this.base.box_group==BoxSet.MONSTER) {
|
if(this.base.fac==FacSet.MON) {
|
||||||
hero = ecs.getEntity<Monster>(Monster);
|
hero = ecs.getEntity<Monster>(Monster);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user