コード例 #1
0
        public static void DeployShield(Pawn pawn, IShield shield)
        {
            var deployed = new Comp_DeployedShield(shield);

            deployed.props = new CompProperties_DeployedShield();

            switch (shield)
            {
            case IEnergyNode node:
                node.ConnectTo(null);     // TODO get pawn net
                break;
            }

            pawn.AllComps.Add(deployed);
            ShieldManager.For(pawn.Map).Add(deployed.Fields);
        }
コード例 #2
0
        public static void UndeployShield(Pawn pawn, IShield shield)
        {
            pawn.AllComps
            .Where(comp => comp == shield)
            .Do(comp =>
            {
                pawn.AllComps.Remove(comp);
            });

            switch (shield)
            {
            case IEnergyNode node:
                node.Disconnect();
                break;
            }

            ShieldManager.For(pawn.Map).Del(shield.Fields);
        }
コード例 #3
0
ファイル: FieldQuery.cs プロジェクト: Thielquis/Shields
 public FieldQuery(Map map)
 {
     _map     = map;
     _shields = ShieldManager.For(map).Fields.Where(shield => shield.PresentOnMap(map));
 }