Exemple #1
0
    public void ConstructScene(MatchLogResponseParameter param)
    {
        BattleRandomer.Instance.SetSeed(param.RandomSeed);
        for (int i = 0; i < param.DropArmyCommands.Count; i++)
        {
            DropArmyResponseParameter army = param.DropArmyCommands[i];
            this.m_DropCommands.Enqueue(army);
        }
        for (int i = 0; i < param.DropMercenaryCommands.Count; i++)
        {
            DropMercenaryResponseParameter mercenary = param.DropMercenaryCommands[i];
            this.m_DropMercenaryCommands.Enqueue(mercenary);
        }
        for (int i = 0; i < param.UsePropsCommands.Count; i++)
        {
            UsePropsResponseParameter props = param.UsePropsCommands[i];
            this.m_UsePropsCommands.Enqueue(props);
        }
        BattleSceneHelper.Instance.ClearObject();
        this.m_SceneDirector.ClearAllActors();
        Resources.UnloadUnusedAssets();

        this.m_BuildingFactory.ConstructBuilding(param.RivalInformation);
        this.m_Map.SetMap(this.CurrentAge);
        BattleMapData.Instance.ConstructGridArray();
        this.m_SceneDirector.GenerateActors();
        BattleRecorder.Instance.ClearRecords();
    }
Exemple #2
0
    void Start()
    {
        Resources.UnloadUnusedAssets();
        AudioController.PlayMusic("BattleStart");
        this.m_DropCommands          = new Queue <DropArmyResponseParameter>();
        this.m_DropMercenaryCommands = new Queue <DropMercenaryResponseParameter>();
        this.m_UsePropsCommands      = new Queue <UsePropsResponseParameter>();
        this.m_Match = this.m_Reader.GetReplayData();
        this.ConstructScene(this.m_Match);

        this.m_TotalCGTick = this.m_Match.TotalTime;

        this.StartCoroutine("DelayCloudFadeOut");
    }
    public void GetReplayDetail(Hashtable result)
    {
        MatchLogResponseParameter param = new MatchLogResponseParameter();

        param.InitialParameterObjectFromHashtable(result);


        Dictionary <ArmyType, int> armies      = new Dictionary <ArmyType, int>();
        List <MercenaryType>       mercenaries = new List <MercenaryType>();
        List <PropsType>           props       = new List <PropsType>();

        foreach (DropArmyResponseParameter drop in param.DropArmyCommands)
        {
            if (!armies.ContainsKey(drop.ArmyType))
            {
                armies.Add(drop.ArmyType, drop.Level);
            }
        }

        foreach (DropMercenaryResponseParameter drop in param.DropMercenaryCommands)
        {
            if (!mercenaries.Contains(drop.MercenaryType))
            {
                mercenaries.Add(drop.MercenaryType);
            }
        }

        foreach (UsePropsResponseParameter command in param.UsePropsCommands)
        {
            if (!props.Contains(command.PropsType))
            {
                props.Add(command.PropsType);
            }
        }

        this.m_PreloadManager.Preload(armies, mercenaries, props);

        this.m_TotalReplayTick = param.TotalTime;
        this.ConstructScene(param);

        StartCoroutine("DelayCloudFadeOut");
    }
    void Start()
    {
        Resources.UnloadUnusedAssets();
        AudioController.PlayMusic("BattleStart");
        this.m_DropCommands          = new Queue <DropArmyResponseParameter>();
        this.m_DropMercenaryCommands = new Queue <DropMercenaryResponseParameter>();
        this.m_UsePropsCommands      = new Queue <UsePropsResponseParameter>();
        this.m_Match = this.m_Reader.GetReplayData();

        Dictionary <ArmyType, int> armies      = new Dictionary <ArmyType, int>();
        List <MercenaryType>       mercenaries = new List <MercenaryType>();
        List <PropsType>           props       = new List <PropsType>();

        foreach (DropArmyResponseParameter army in this.m_Match.DropArmyCommands)
        {
            if (!armies.ContainsKey(army.ArmyType))
            {
                armies.Add(army.ArmyType, army.Level);
            }
        }
        foreach (DropMercenaryResponseParameter mercenary in this.m_Match.DropMercenaryCommands)
        {
            mercenaries.Add(mercenary.MercenaryType);
        }
        foreach (UsePropsResponseParameter p in this.m_Match.UsePropsCommands)
        {
            props.Add(p.PropsType);
        }
        this.m_PreloadManager.Preload(armies, mercenaries, props);

        this.ConstructScene(this.m_Match);

        this.m_TotalReplayTick = this.m_Match.TotalTime;

        this.StartReplay();
    }
Exemple #5
0
    public MatchLogResponseParameter GetReplayData()
    {
        MatchLogResponseParameter result = new MatchLogResponseParameter();

        result.RandomSeed       = 0;
        result.RivalInformation = DataConvertor.ConvertJSONToParameter((Hashtable)(JSONHelper.jsonDecode(this.GetMapInformation())));

        Hashtable battleInfo = (Hashtable)JSONHelper.jsonDecode(this.GetBattleInformation());

        result.TotalTime = Convert.ToInt32(battleInfo[EditorConfigInterface.Instance.BattleTimeKey]);

        result.DropArmyCommands      = new List <DropArmyResponseParameter>();
        result.DropMercenaryCommands = new List <DropMercenaryResponseParameter>();
        result.UsePropsCommands      = new List <UsePropsResponseParameter>();

        if (battleInfo.ContainsKey(EditorConfigInterface.Instance.BattleArmyKey))
        {
            ArrayList dropArmies = (ArrayList)battleInfo[EditorConfigInterface.Instance.BattleArmyKey];
            foreach (var army in dropArmies)
            {
                DropArmyResponseParameter param = new DropArmyResponseParameter();
                Hashtable a = (Hashtable)army;
                param.ArmyType    = (ArmyType)(Convert.ToInt32(a[EditorConfigInterface.Instance.DropTypeKey]));
                param.Level       = Convert.ToInt32(a[EditorConfigInterface.Instance.ArmyLevelKey]);
                param.PositionX   = float.Parse(a[EditorConfigInterface.Instance.DropPositionXKey].ToString());
                param.PositionY   = float.Parse(a[EditorConfigInterface.Instance.DropPositionYKey].ToString());
                param.OperateTime = Convert.ToInt32(a[EditorConfigInterface.Instance.DropTimeKey]);
                result.DropArmyCommands.Add(param);
            }
        }
        if (battleInfo.ContainsKey(EditorConfigInterface.Instance.BattleMercenaryKey))
        {
            ArrayList dropMercenaries = (ArrayList)battleInfo[EditorConfigInterface.Instance.BattleMercenaryKey];
            foreach (var mercenary in dropMercenaries)
            {
                DropMercenaryResponseParameter param = new DropMercenaryResponseParameter();
                Hashtable a = (Hashtable)mercenary;
                param.MercenaryType = (MercenaryType)(Convert.ToInt32(a[EditorConfigInterface.Instance.DropTypeKey]));
                param.PositionX     = float.Parse(a[EditorConfigInterface.Instance.DropPositionXKey].ToString());
                param.PositionY     = float.Parse(a[EditorConfigInterface.Instance.DropPositionYKey].ToString());
                param.OperateTime   = Convert.ToInt32(a[EditorConfigInterface.Instance.DropTimeKey]);
                result.DropMercenaryCommands.Add(param);
            }
        }

        if (battleInfo.ContainsKey(EditorConfigInterface.Instance.BattlePropsKey))
        {
            ArrayList useProps = (ArrayList)battleInfo[EditorConfigInterface.Instance.BattlePropsKey];
            foreach (var props in useProps)
            {
                UsePropsResponseParameter param = new UsePropsResponseParameter();
                Hashtable p = (Hashtable)props;
                param.PropsType   = (PropsType)(Convert.ToInt32(p[EditorConfigInterface.Instance.DropTypeKey]));
                param.PositionX   = float.Parse(p[EditorConfigInterface.Instance.DropPositionXKey].ToString());
                param.PositionY   = float.Parse(p[EditorConfigInterface.Instance.DropPositionYKey].ToString());
                param.OperateTime = Convert.ToInt32(p[EditorConfigInterface.Instance.DropTimeKey]);
                result.UsePropsCommands.Add(param);
            }
        }

        return(result);
    }