Example #1
0
        public void OnCollision(StaticShape coin, CoinCollector other, Point3F vec, float len)
        {
            ParticleEmitterNode emitterNode = new ParticleEmitterNode {
                DataBlock = Sim.FindObject <ParticleEmitterNodeData>("CoinNode"),
                Emitter   = Sim.FindObject <ParticleEmitterData>("CoinEmitter"),
                Position  = coin.GetPosition()
            };

            emitterNode.RegisterObject();
            emitterNode.Schedule("200", "delete");
            coin.Delete();

            SimGroup Coins = Sim.FindObject <SimGroup>("Coins");

            other.Client.CoinsFound++;
            Core.Functions.MessageAll("MsgCoinPickedUp".Tag(), "-1", other.Client.PlayerName,
                                      other.Client, other.Client.CoinsFound.ToString(), other.Client.Kills.ToString(), other.Client.Deaths.ToString());
            if (Coins is null || Coins.GetCount() > 0)
            {
                return;
            }
            CoinCollectionGameConnection winnerClient =
                Core.Objects.ClientGroup.GetObject(0).As <CoinCollectionGameConnection>();

            List <CoinCollectionGameConnection> loserClients = new List <CoinCollectionGameConnection>();

            for (uint i = 1; i < Core.Objects.ClientGroup.GetCount(); i++)
            {
                var client = Core.Objects.ClientGroup.GetObject(i).As <CoinCollectionGameConnection>();
                if (client.CoinsFound > winnerClient.CoinsFound)
                {
                    loserClients.Add(winnerClient);
                    winnerClient = client;
                }
                else
                {
                    loserClients.Add(client);
                }
            }

            loserClients.ForEach(client =>
                                 Global.CommandToClient(
                                     client,
                                     "ShowDefeat".Tag(),
                                     client.CoinsFound.ToString()
                                     ));

            Global.CommandToClient(
                winnerClient,
                "ShowVictory".Tag(),
                winnerClient.CoinsFound.ToString());
        }
Example #2
0
                /// <summary>
                /// Initializes a new instance of the <see cref="ModulesHeader"/> class.
                /// </summary>
                /// <param name="parent">The parent emitter node.</param>
                /// <param name="type">The module type.</param>
                public ModulesHeader(ParticleEmitterNode parent, ParticleModules.ModuleType type)
                {
                    ModuleType = type;
                    Parent     = parent;
                    AutoFocus  = false;

                    float addButtonWidth  = 80.0f;
                    float addButtonHeight = 16.0f;

                    AddModuleButton = new Button(Width * 0.5f, Height - addButtonHeight - 2.0f, addButtonWidth, addButtonHeight)
                    {
                        Text        = "Add Module",
                        TooltipText = "Add new particle modules to the emitter",
                        AnchorStyle = AnchorStyle.BottomCenter,
                        Parent      = this
                    };
                    AddModuleButton.ButtonClicked += OnAddModuleButtonClicked;
                }
Example #3
0
                /// <summary>
                /// Initializes a new instance of the <see cref="ModulesHeader"/> class.
                /// </summary>
                /// <param name="parent">The parent emitter node.</param>
                /// <param name="type">The module type.</param>
                public ModulesHeader(ParticleEmitterNode parent, ParticleModules.ModuleType type)
                {
                    ModuleType = type;
                    Parent     = parent;
                    AutoFocus  = false;

                    float addButtonWidth  = 80.0f;
                    float addButtonHeight = 16.0f;

                    AddModuleButton = new Button
                    {
                        Text         = "Add Module",
                        TooltipText  = "Add new particle modules to the emitter",
                        AnchorPreset = AnchorPresets.BottomCenter,
                        Parent       = this,
                        Bounds       = new Rectangle((Width - addButtonWidth) * 0.5f, Height - addButtonHeight - 2, addButtonWidth, addButtonHeight),
                    };
                    AddModuleButton.ButtonClicked += OnAddModuleButtonClicked;
                }