예제 #1
0
    public void RemoveEffectFromUnits(MapBoostDefinition definition, Unit[] units, global::Empire empire)
    {
        List <SimulationDescriptorReference> list = new List <SimulationDescriptorReference>();

        definition.GetValidDescriptors(empire, out list);
        if (list != null)
        {
            for (int i = 0; i < list.Count; i++)
            {
                SimulationDescriptor simulationDescriptor;
                if (this.simulationDescriptorsDatabase.TryGetValue(list[i].Name, out simulationDescriptor))
                {
                    for (int j = 0; j < units.Length; j++)
                    {
                        if (units[j] != null)
                        {
                            units[j].RemoveMapBoost(definition.Name, simulationDescriptor);
                            if (units[j].AppliedBoosts.Count <= 0)
                            {
                                units[j].HasMapBoost = false;
                            }
                        }
                    }
                }
            }
        }
    }