public bool CalFightProp() { if (m_owner.EnType == EntityType.Monster) { int id = m_owner.ID; MonsterCsvData monster = GameMgr.Instance.m_csvMgr.mMonsterCsv.Lookup(id); if (monster == null) { Debug.LogWarning("FightProp::CalFightProp MonsterCsvData == null ID = " + id); return(false); } SetProp(PropID.MaxHP, monster.curHP); SetProp(PropID.HP, monster.curHP); SetProp(PropID.MovingSpeedScale, monster.moveSpeed); int skillID = monster.skillID; SkillCsvData skill = GameMgr.Instance.m_csvMgr.mSkillCsv.Lookup(skillID); if (skill == null) { Debug.LogWarning("FightProp::CalFightProp SkillCsvData == null ID = " + id); return(false); } SetProp(PropID.Damage, skill.Damage); } else if (m_owner.EnType == EntityType.Hero) { } return(true); }
public override bool Create(EntityCreateCtx ctx) { if (base.Create(ctx) == false) { Debug.LogError("Monster::Create 创建Monster失败 !!!"); return(false); } m_csvData = GameMgr.Instance.m_csvMgr.mMonsterCsv.Lookup(ctx.id); MoveSpeed = m_csvData.moveSpeed; SkillID = m_csvData.skillID; EnType = EntityType.Monster; EntityViewCreateCtx ctxView = new EntityViewCreateCtx(); ctxView.Owner = this; ctxView.Type = EntityViewType.Monster; ctxView.Name = "Monster_" + UID.ToString(); ctxView.ResName = m_csvData.resourceID; m_entityView = GameMgr.Instance.m_entityViewMgr.CreateEntityView(ctxView); if (m_entityView == null) { Debug.LogError("Monster::Create Monster failed !!!"); return(false); } m_entityView.SetParent(null); Position = ctx.pos; Direction = ctx.dir; m_Part[(int)EntityPartType.MovePart] = new MovePart(); if (m_Part[(int)EntityPartType.MovePart].Init(this) == false) { Debug.LogError("Monster::Create 移动部件初始化失败 !!!"); return(false); } m_Part[(int)EntityPartType.SkillPart] = new SkillPart(); if (m_Part[(int)EntityPartType.SkillPart].Init(this) == false) { Debug.LogError("Monster::Create 技能部件初始化失败 !!!"); return(false); } if (!m_fightProp.Init()) { Debug.LogError("Monster::Create初始化战斗属性失败 !!!"); return(false); } return(true); }
public bool OnSchemeLoad(ICsvReader reader) { int nRowCount = reader.GetRowCount(); m_MonsterDic.Clear(); try { for (int i = 0; i < nRowCount; i++) { int j = 0; MonsterCsvData data = new MonsterCsvData(); reader.GetData(out data.monsterID, i, j++, "Id"); reader.GetData(out data.monsterName, i, j++, "名字"); reader.GetData(out data.headID, i, j++, "头像ID"); reader.GetData(out data.resourceID, i, j++, "资源ID"); reader.GetData(out data.bornEffID, i, j++, "出生效果ID"); reader.GetData(out data.dieEffID, i, j++, "死亡效果ID"); reader.GetData(out data.hitEffID, i, j++, "受击表现效果ID"); reader.GetData(out data.celeEffID, i, j++, "庆祝效果ID"); reader.GetData(out data.skillID, i, j++, "技能ID"); reader.GetData(out data.curHP, i, j++, "血量"); reader.GetData(out data.curLevel, i, j++, "等级"); reader.GetData(out data.curType, i, j++, "类型"); reader.GetData(out data.moveSpeed, i, j++, "速度"); if (m_MonsterDic.ContainsKey(data.monsterID)) { Debug.Log("MonsterCsv::OnSchemeLoad 存在相同的资源名称 monsterID=" + data.monsterID); continue; } m_MonsterDic.Add(data.monsterID, data); } } catch (Exception e) { Debug.Log("MonsterCsv OnSchemeLoad Load Config error.. msg=" + e.Message); return(false); } return(true); }