Esempio n. 1
0
        public override void FastForwardTime(int time)
        {
            if (this.m_timer != null)
            {
                if (this.m_timer.GetEndTimestamp() == -1)
                {
                    this.m_timer.StartTimer(this.m_timer.GetRemainingSeconds(this.m_parent.GetLevel().GetLogicTime()) - time, this.m_parent.GetLevel().GetLogicTime(), false, -1);
                }
                else
                {
                    this.m_timer.AdjustEndSubtick(this.m_parent.GetLevel());
                }

                int clockTowerBoostTime = this.m_parent.GetLevel().GetUpdatedClockTowerBoostTime();

                if (clockTowerBoostTime > 0 && this.m_parent.GetLevel().IsClockTowerBoostPaused())
                {
                    LogicGameObjectData data = this.m_parent.GetData();

                    if (data.GetDataType() == LogicDataType.BUILDING)
                    {
                        if (data.GetVillageType() == 1)
                        {
                            this.m_timer.SetFastForward(this.m_timer.GetFastForward() +
                                                        60 * LogicMath.Min(time, clockTowerBoostTime) * (LogicDataTables.GetGlobals().GetClockTowerBoostMultiplier() - 1));
                        }
                    }
                }
            }
        }
        public override void FastForwardTime(int time)
        {
            int heroHealthTime        = time;
            int constructionBoostTime = 0;
            int remainingBoostTime    = this.m_parent.GetRemainingBoostTime();

            if (remainingBoostTime > 0)
            {
                if (!this.m_parent.IsBoostPaused())
                {
                    heroHealthTime += LogicMath.Min(remainingBoostTime, time) * (LogicDataTables.GetGlobals().GetHeroRestBoostMultiplier() - 1);
                }
            }

            int clockTowerBoostTime = this.m_parent.GetLevel().GetUpdatedClockTowerBoostTime();

            if (clockTowerBoostTime > 0 && this.m_parent.GetLevel().IsClockTowerBoostPaused())
            {
                LogicGameObjectData data = this.m_parent.GetData();

                if (data.GetDataType() == LogicDataType.BUILDING && data.GetVillageType() == 1)
                {
                    int boost = LogicMath.Min(clockTowerBoostTime, time) * (LogicDataTables.GetGlobals().GetClockTowerBoostMultiplier() - 1);

                    heroHealthTime        += boost;
                    constructionBoostTime += boost;
                }
            }

            this.m_parent.GetLevel().GetHomeOwnerAvatar().FastForwardHeroHealth(this.m_hero, heroHealthTime);

            if (this.m_timer != null)
            {
                if (this.m_timer.GetEndTimestamp() == -1)
                {
                    this.m_timer.StartTimer(this.m_timer.GetRemainingSeconds(this.m_parent.GetLevel().GetLogicTime()) - time, this.m_parent.GetLevel().GetLogicTime(), false, -1);
                }
                else
                {
                    this.m_timer.AdjustEndSubtick(this.m_parent.GetLevel());
                }

                if (constructionBoostTime > 0)
                {
                    this.m_timer.SetFastForward(this.m_timer.GetFastForward() + 60 * constructionBoostTime);
                }
            }
        }
Esempio n. 3
0
        public override void FastForwardTime(int secs)
        {
            LogicArrayList <LogicComponent> components = this.m_parent.GetComponentManager().GetComponents(LogicComponentType.VILLAGE2_UNIT);

            int barrackCount      = this.m_parent.GetGameObjectManager().GetBarrackCount();
            int barrackFoundCount = 0;

            for (int i = 0; i < barrackCount; i++)
            {
                LogicBuilding building = (LogicBuilding)this.m_parent.GetGameObjectManager().GetBarrack(i);

                if (building != null && !building.IsConstructing())
                {
                    barrackFoundCount += 1;
                }
            }

            if (components.Size() <= 0 || barrackFoundCount != 0 && components[0] == this)
            {
                LogicLevel level = this.m_parent.GetLevel();

                int clockTowerBoostTime = level.GetUpdatedClockTowerBoostTime();
                int boostTime           = 0;

                if (clockTowerBoostTime > 0 &&
                    !level.IsClockTowerBoostPaused())
                {
                    LogicGameObjectData data = this.m_parent.GetData();

                    if (data.GetDataType() == LogicDataType.BUILDING)
                    {
                        if (data.GetVillageType() == 1)
                        {
                            boostTime = LogicMath.Min(secs, clockTowerBoostTime) * (LogicDataTables.GetGlobals().GetClockTowerBoostMultiplier() - 1);
                        }
                    }
                }

                int remainingSecs = secs + boostTime;

                for (int i = 0; i < components.Size(); i++)
                {
                    remainingSecs = LogicMath.Max(0, remainingSecs - ((LogicVillage2UnitComponent)components[i]).FastForwardProduction(remainingSecs));
                }
            }
        }
        public override void Tick()
        {
            this.m_healthTime += 64;

            int regenTime = 1000;

            if (this.m_parent.GetRemainingBoostTime() > 0 && !this.m_parent.IsBoostPaused())
            {
                regenTime /= LogicDataTables.GetGlobals().GetHeroRestBoostMultiplier();
            }

            if (this.m_parent.GetLevel().GetRemainingClockTowerBoostTime() > 0)
            {
                LogicGameObjectData data = this.m_parent.GetData();

                if (data.GetDataType() == LogicDataType.BUILDING && data.GetVillageType() == 1)
                {
                    regenTime /= LogicDataTables.GetGlobals().GetClockTowerBoostMultiplier();

                    if (this.m_timer != null)
                    {
                        this.m_timer.SetFastForward(this.m_timer.GetFastForward() + 4 * LogicDataTables.GetGlobals().GetClockTowerBoostMultiplier() - 4);
                    }
                }
            }

            if (this.m_healthTime > regenTime)
            {
                if (this.m_parent.GetLevel().GetPlayerAvatar().FastForwardHeroHealth(this.m_hero, 1) && this.GetParentListener() != null)
                {
                    // LOAD EFFECT.
                }

                this.m_healthTime -= regenTime;
            }

            if (this.m_timer != null)
            {
                if (this.m_timer.GetRemainingSeconds(this.m_parent.GetLevel().GetLogicTime()) == 0)
                {
                    this.FinishUpgrading(true);
                }
            }
        }
Esempio n. 5
0
        public override void Tick()
        {
            if (this.m_timer != null)
            {
                if (this.m_parent.GetLevel().GetRemainingClockTowerBoostTime() > 0)
                {
                    LogicGameObjectData data = this.m_parent.GetData();

                    if (data.GetDataType() == LogicDataType.BUILDING && data.GetVillageType() == 1)
                    {
                        this.m_timer.SetFastForward(this.m_timer.GetFastForward() + 4 * LogicDataTables.GetGlobals().GetClockTowerBoostMultiplier() - 4);
                    }
                }

                if (this.m_timer.GetRemainingSeconds(this.m_parent.GetLevel().GetLogicTime()) == 0)
                {
                    this.FinishUpgrading(true);
                }
            }
        }