コード例 #1
0
ファイル: MedicPickup.cs プロジェクト: Noitha/DetentionRoom
        public override void Interact(BoltEntity boltEntity)
        {
            var medicPickup = MedicPickedUp.Create(GlobalTargets.OnlyServer, ReliabilityModes.ReliableOrdered);

            medicPickup.Player       = boltEntity;
            medicPickup.Amount       = state.MedicAmount;
            medicPickup.ObjectEntity = entity;
            medicPickup.Send();
        }
コード例 #2
0
        /// <summary>
        /// Gets called whenever medic is picked-up.
        /// </summary>
        /// <param name="medicPickedUp"></param>
        public override void OnEvent(MedicPickedUp medicPickedUp)
        {
            //Get the player-state.
            var playerState = medicPickedUp.Player.GetState <IPlayer>();

            //Get the medic-pickup-state.
            var health = medicPickedUp.ObjectEntity.GetState <IMedicPickup>();

            //Calculate how much health the player can heal.
            var canHeal = 100 - (int)playerState.Health;

            //Cancel if medic-supply is empty or player health at max.
            if (health.MedicAmount == 0 || canHeal == 0)
            {
                return;
            }

            playerState.Health += canHeal;
            health.MedicAmount -= canHeal;
        }