Add() public method

public Add ( string key, string prerequisites, int limit, ITechTreeElement tte ) : void
key string
prerequisites string
limit int
tte ITechTreeElement
return void
コード例 #1
0
ファイル: SupportPowerManager.cs プロジェクト: cjshmyr/OpenRA
        void ActorAdded(Actor a)
        {
            if (a.Owner != Self.Owner)
            {
                return;
            }

            foreach (var t in a.TraitsImplementing <SupportPower>())
            {
                var key = MakeKey(t);

                if (!Powers.ContainsKey(key))
                {
                    Powers.Add(key, new SupportPowerInstance(key, this)
                    {
                        Instances     = new List <SupportPower>(),
                        RemainingTime = t.Info.StartFullyCharged ? 0 : t.Info.ChargeTime * 25,
                        TotalTime     = t.Info.ChargeTime * 25,
                    });

                    if (t.Info.Prerequisites.Any())
                    {
                        TechTree.Add(key, t.Info.Prerequisites, 0, this);
                        TechTree.Update();
                    }
                }

                Powers[key].Instances.Add(t);
            }
        }
コード例 #2
0
        void ActorAdded(Actor a)
        {
            if (a.Owner != Self.Owner)
            {
                return;
            }

            foreach (var t in a.TraitsImplementing <SupportPower>())
            {
                var key = MakeKey(t);

                if (!Powers.ContainsKey(key))
                {
                    Powers.Add(key, t.CreateInstance(key, this));

                    if (t.Info.Prerequisites.Any())
                    {
                        TechTree.Add(key, t.Info.Prerequisites, 0, this);
                        TechTree.Update();
                    }
                }

                Powers[key].Instances.Add(t);
            }
        }
コード例 #3
0
        void ActorAdded(Actor a)
        {
            if (a.Owner != Self.Owner)
            {
                return;
            }

            foreach (var t in a.TraitsImplementing <SupportPower>())
            {
                var key = MakeKey(t);

                var hasKey = Powers.ContainsKey(key);
                if (!hasKey)
                {
                    Powers.Add(key, t.CreateInstance(key, this));
                }

                Powers[key].Instances.Add(t);

                if (!hasKey)
                {
                    foreach (var prerequisite in t.Info.Prerequisites)
                    {
                        var techKey = key + prerequisite.Key;
                        TechTree.Add(techKey, prerequisite.Value, 0, this);
                    }

                    TechTree.Update();
                }
            }
        }
コード例 #4
0
        public void Register(Actor actor, GlobalUpgradable u, string[] prerequisites)
        {
            var key = MakeKey(prerequisites);

            if (!upgradables.ContainsKey(key))
            {
                upgradables.Add(key, new List <Pair <Actor, GlobalUpgradable> >());
                techTree.Add(key, prerequisites, 0, this);
            }

            upgradables[key].Add(Pair.New(actor, u));

            // Notify the current state
            u.PrerequisitesUpdated(actor, techTree.HasPrerequisites(prerequisites));
        }
コード例 #5
0
ファイル: ProductionQueue.cs プロジェクト: dnqbob/OpenRA
        void CacheProducibles(Actor playerActor)
        {
            Producible.Clear();
            if (!Enabled)
            {
                return;
            }

            foreach (var a in AllBuildables(Info.Type))
            {
                var bi = a.TraitInfo <BuildableInfo>();

                Producible.Add(a, new ProductionState());
                techTree.Add(a.Name, bi.Prerequisites, bi.BuildLimit, this);
            }
        }