Example #1
0
        private ShieldBuildingInfo GetShieldBuildingInfo(Entity building, ShieldLoadReason reason, object cookie)
        {
            ShieldBuildingInfo shieldBuildingInfo;

            if (!this.buildings.ContainsKey(building))
            {
                if (reason == ShieldLoadReason.StopEffect)
                {
                    return(null);
                }
                shieldBuildingInfo = this.LoadEffectsForBuilding(building);
            }
            else
            {
                shieldBuildingInfo = this.buildings[building];
                if (shieldBuildingInfo.LoadComplete)
                {
                    return(shieldBuildingInfo);
                }
                if (reason == ShieldLoadReason.StopEffect)
                {
                    this.CleanupShield(building);
                    return(null);
                }
            }
            if (reason != ShieldLoadReason.CreateEffect && shieldBuildingInfo.Reasons.Count == 0)
            {
                shieldBuildingInfo.Reasons.Add(new ShieldReason(ShieldLoadReason.CreateEffect, null));
            }
            shieldBuildingInfo.Reasons.Add(new ShieldReason(reason, cookie));
            return(null);
        }
Example #2
0
 public ShieldReason(ShieldLoadReason reason, object cookie)
 {
     this.Reason = reason;
     this.Cookie = cookie;
 }