Пример #1
0
    override public void OnSceneLoaded()
    {
        SceneCsvData csvData = GameMgr.Instance.m_csvMgr.mSceneCsv.Lookup(SceneID);

        if (csvData == null)
        {
            Debug.LogError("EctypeScene::OnSceneLoaded sceneCsvData load error id = " + SceneID);
            return;
        }

        GameObject scene = GameMgr.Instance.m_resMgr.LoadResource(csvData.sceneID);

        scene.name = csvData.sceneName;

        EctypeCsvData ectypeCsvData = GameMgr.Instance.m_csvMgr.mEctypeCsv.Lookup((int)EctypeId);

        if (ectypeCsvData == null)
        {
            Debug.LogError(string.Format("EctypeScene::OnSceneLoaded, m_ectypeId={0}", EctypeId));
            return;
        }

        int monsterID        = ectypeCsvData.monsterID; //副本Monster表
        EctypeMonsterCsv csv = GameMgr.Instance.m_csvMgr.MonsterCsvs.Lookup(monsterID);

        if (csv == null)
        {
            Debug.LogError(string.Format("EctypeScene::OnSceneLoaded, monsterID={0}", monsterID));
            return;
        }
        EctypeCreatContext ctx = new EctypeCreatContext();

        ctx.dwEctypeID = EctypeId;
        ctx.sceneID    = SceneID;

        foreach (EctypeMonsterCsvData data in csv.EctypeMonsterDic.Values)
        {
            EntityCreateCtx defenders = new EntityCreateCtx();
            int             enemyID   = data.monsterID;
            defenders.type  = (EntityType)GameMgr.Instance.m_csvMgr.mMonsterCsv.LookUpType(enemyID);
            defenders.id    = enemyID;
            defenders.pos   = new Vector3(2f, 0f, 0f);
            defenders.dir   = Vector3.zero;
            defenders.scene = this;
            defenders.camp  = EntityCamp.Defender;

            ctx.defenderTeam.entityList.Add(defenders);
        }

        EntityCreateCtx attackers = CreateAttacker();

        ctx.attackerTeam.entityList.Add(attackers);

        GameMgr.Instance.m_ectypeMgr.CreateEctype(ctx);
    }
Пример #2
0
    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);
    }
Пример #3
0
    public virtual bool Create(EntityCreateCtx ctx)
    {
        EnType  = ctx.type;
        m_pos   = ctx.pos;
        m_dir   = ctx.dir;
        m_scene = ctx.scene;
        m_camp  = ctx.camp;
        m_level = GameMgr.Instance.m_csvMgr.mMonsterCsv.LookUpLevel(ctx.id);
        ID      = ctx.id;
        Name    = GameMgr.Instance.m_csvMgr.mMonsterCsv.LookUpName(ID);

        return(true);
    }
Пример #4
0
    private EntityCreateCtx CreateAttacker()
    {
        EntityCreateCtx attacker = new EntityCreateCtx();

        attacker.type  = (EntityType)GameMgr.Instance.m_csvMgr.mMonsterCsv.LookUpType(1);
        attacker.id    = 1;
        attacker.pos   = new Vector3(-2f, 0f, 0f);
        attacker.dir   = Vector3.zero;
        attacker.scene = this;
        attacker.camp  = EntityCamp.Attacker;

        return(attacker);
    }
Пример #5
0
    public bool Create(EctypeCreatContext createContext)
    {
        mCreateContext = createContext;
        m_attackerTeam = new EctypeTeamAttacker(this);
        m_defenderTeam = new EctypeTeamDefender(this);

        for (int i = 0; i < mCreateContext.attackerTeam.entityList.Count; i++)
        {
            EntityCreateCtx ctx      = mCreateContext.attackerTeam.entityList[i];
            EctypeEntity    attacker = new EctypeEntity();
            attacker.entity = GameMgr.Instance.m_entityMgr.Build(ctx);

            if (attacker.entity == null)
            {
                Debug.Log("Ectype::Create Attacker failed !");
                continue;
            }
            attacker.Status = EntityEctypeStatus.Idle;
            attacker.Camp   = EntityCamp.Attacker;

            m_attackerTeam.m_entityList.Add(attacker);
            GameMgr.Instance.m_uiMgr.UIFight.CreateAttacker(attacker.entity);
        }

        for (int i = 0; i < mCreateContext.defenderTeam.entityList.Count; i++)
        {
            EntityCreateCtx ctx      = mCreateContext.defenderTeam.entityList[i];
            EctypeEntity    defender = new EctypeEntity();
            defender.entity = GameMgr.Instance.m_entityMgr.Build(ctx);

            if (defender.entity == null)
            {
                Debug.Log("Ectype::Create Defender failed !");
                continue;
            }
            defender.Status = EntityEctypeStatus.Idle;
            defender.Camp   = EntityCamp.Defender;

            m_defenderTeam.m_entityList.Add(defender);
            GameMgr.Instance.m_uiMgr.UIFight.CreateDeffender(defender.entity);
        }

        return(true);
    }
Пример #6
0
    private Entity BuildMonster(EntityCreateCtx ctx)
    {
        Monster monster = new Monster();

        monster.UID = GetUID();
        if (monster.Create(ctx) == false)
        {
            return(null);
        }

        if (m_entityDic.ContainsKey(monster.UID))
        {
            m_entityDic[monster.UID] = monster;
        }
        else
        {
            m_entityDic.Add(monster.UID, monster);
        }

        return(monster);
    }
Пример #7
0
    public Entity Build(EntityCreateCtx ctx)
    {
        if (ctx.type <= EntityType.None || ctx.type >= EntityType.Max)
        {
            return(null);
        }

        Entity entity = null;

        if (ctx.type == EntityType.Hero)
        {
            entity        = BuildMonster(ctx);
            entity.EnType = EntityType.Hero;
        }
        else if (ctx.type == EntityType.Monster)
        {
            entity = BuildMonster(ctx);
        }

        return(entity);
    }
Пример #8
0
 private Entity BuildHerro(EntityCreateCtx ctx)
 {
     return(new Entity());
 }