当前位置: 首页>>代码示例>>C#>>正文


C# Architecture.RemovePerson方法代码示例

本文整理汇总了C#中GameObjects.Architecture.RemovePerson方法的典型用法代码示例。如果您正苦于以下问题:C# Architecture.RemovePerson方法的具体用法?C# Architecture.RemovePerson怎么用?C# Architecture.RemovePerson使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在GameObjects.Architecture的用法示例。


在下文中一共展示了Architecture.RemovePerson方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Create

 public static Troop Create(Architecture from, GameObjectList persons, Person leader, Military military, int food, Point position)
 {
     Troop troop = new Troop();
     troop.Scenario = from.Scenario;
     troop.destination = position;
     troop.realDestination = position;
     troop.StartingArchitecture = from;
     troop.ID = troop.Scenario.Troops.GetFreeGameObjectID();
     foreach (Person person in persons.GetList())
     {
         troop.AddPerson(person);
         from.RemovePerson(person);
     }
     troop.SetLeader(leader);
     if (from.BelongedFaction != null)
     {
         from.BelongedFaction.AddTroop(troop);
         troop.TechnologyIncrement = from.Technology / 50;
         if (military.ShelledMilitary == null)
         {
             from.RemoveMilitary(military);
         }
         else
         {
             from.RemoveMilitary(military.ShelledMilitary);
             from.Scenario.Militaries.AddMilitary(military);
         }
     }
     troop.Army = military;
     if (food < 0)
     {
         if (from.Food > (6 * military.FoodMax))
         {
             troop.Food = military.FoodMax;
         }
         else if (from.Food > (3 * military.FoodMax))
         {
             troop.Food = military.FoodCostPerDay * ((int) Math.Ceiling((double) (((float) military.RationDays) / 2f)));
         }
         else if (from.Food > military.FoodMax)
         {
             troop.Food = military.FoodCostPerDay * (1 + (military.RationDays / 4));
         }
         else if (from.Food > (military.FoodCostPerDay * (1 + (military.RationDays / 6))))
         {
             troop.Food = military.FoodCostPerDay * (1 + (military.RationDays / 6));
         }
         else if (from.Food > military.FoodCostPerDay)
         {
             troop.Food = military.FoodCostPerDay;
         }
         else
         {
             troop.Food = 0;
         }
     }
     else
     {
         troop.Food = food;
     }
     if (troop.Food > 0)
     {
         from.DecreaseFood(troop.Food);
     }
     troop.InitializePosition(position);
     troop.Scenario.Troops.AddTroopWithEvent(troop);
     if (troop.OnTroopCreate != null)
     {
         troop.OnTroopCreate(troop);
     }
     return troop;
 }
开发者ID:skicean,项目名称:ZhongHuaSanGuoZhi,代码行数:72,代码来源:Troop.cs

示例2: CheckCaptiveOnOccupy

 private void CheckCaptiveOnOccupy(Architecture a)
 {
     if ((this.BelongedFaction != null) && (a.BelongedFaction != null))
     {
         PersonList personlist = new PersonList();
         foreach (Person person in a.Persons)
         {
             if (!(person.ImmunityOfCaptive || (GameObject.Random(this.CaptiveAblility) <= GameObject.Random(person.CaptiveAbility + 200))))
             {
                 personlist.Add(person);
             }
         }
         if (personlist.Count > 0)
         {
             foreach (Person person in personlist)
             {
                 a.RemovePerson(person);
                 Captive captive = Captive.Create(base.Scenario, person, this.BelongedFaction);
                 if (captive != null)
                 {
                     this.AddCaptive(captive);
                 }
             }
             if (this.OnGetNewCaptive != null)
             {
                 this.OnGetNewCaptive(this, personlist);
             }
         }
     }
 }
开发者ID:skicean,项目名称:ZhongHuaSanGuoZhi,代码行数:30,代码来源:Troop.cs


注:本文中的GameObjects.Architecture.RemovePerson方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。