示例#1
0
        public void UpdateToken()
        {
            BoltEntity component = base.GetComponent <BoltEntity>();
            IBuildingDestructibleState buildingDestructibleState;

            if (component && component.isAttached && component.isOwner && component.TryFindState <IBuildingDestructibleState>(out buildingDestructibleState))
            {
                buildingDestructibleState.Token = this.CustomToken;
            }
        }
        // PRIVATE

        private IKartState GetKartState()
        {
            if (_kartState != null)
            {
                return(_kartState);
            }
            else
            {
                _kartEntity.TryFindState <IKartState>(out _kartState);
                return(_kartState);
            }
        }
示例#3
0
        private void OnTriggerEnter(Collider other)
        {
            if (this.IsEnemy(other))
            {
                this.preventHole = true;
                this.CheckCanPlace();
                return;
            }
            if (other.CompareTag("effigy") || other.GetComponent <FireWarmth>())
            {
                return;
            }
            PrefabIdentifier componentInParent = other.GetComponentInParent <PrefabIdentifier>();

            if (componentInParent)
            {
                BoltEntity component = componentInParent.GetComponent <BoltEntity>();
                if (BoltNetwork.isRunning && component && component.isAttached)
                {
                    IRaftState        raftState;
                    IMultiHolderState multiHolderState;
                    if (component.TryFindState <IRaftState>(out raftState))
                    {
                        foreach (BoltEntity exists in raftState.GrabbedBy)
                        {
                            if (exists)
                            {
                                return;
                            }
                        }
                    }
                    else if (component.TryFindState <IMultiHolderState>(out multiHolderState) && (multiHolderState.GrabbedBy || multiHolderState.Replaces))
                    {
                        return;
                    }
                }
                this.TryAddTarget(componentInParent, other);
            }
        }
 private void TryAddToLists(Collider other)
 {
     if (other.gameObject != _ownerKartHitBox && !_kartsInRange.Contains(other.gameObject))
     {
         IKartState victimKartState;
         BoltEntity victimEntity = other.GetComponentInParent <BoltEntity>();
         if (victimEntity.TryFindState <IKartState>(out victimKartState))
         {
             if (victimKartState.Team != (int)_ownership.Team)
             {
                 _kartsInRange.Add(other.gameObject);
                 _kartsInRangeTimer.Add(other.gameObject, 0f);
             }
         }
     }
 }
        private void SendPlayerHitAndRemove(Collider other)
        {
            IKartState victimKartState;
            BoltEntity victimEntity = other.GetComponentInParent <BoltEntity>();

            if (victimEntity.TryFindState <IKartState>(out victimKartState))
            {
                PlayerHit playerHitEvent = PlayerHit.Create();
                playerHitEvent.KillerID     = _ownership.OwnerID;
                playerHitEvent.KillerName   = _ownership.OwnerNickname;
                playerHitEvent.KillerTeam   = (int)_ownership.Team;
                playerHitEvent.Item         = _ownership.Label;
                playerHitEvent.VictimEntity = victimEntity;
                playerHitEvent.VictimID     = victimKartState.OwnerID;
                playerHitEvent.VictimName   = victimEntity.GetComponent <PlayerInfo>().Nickname;
                playerHitEvent.VictimTeam   = (int)victimKartState.Team;
                playerHitEvent.Send();
            }
            else
            {
                Debug.LogError("Could not find the victim's attached state.");
            }
            TryRemoveFromLists(other);
        }