Exemple #1
0
            void TryGetNewPet(BaseNpc npcPet)
            {
                var ownedAi = npcPet.GetComponent <NpcAI>();

                if (ownedAi != null && ownedAi.owner != this)
                {
                    UserMessage(player, "isPet");
                    return;
                }

                if (nextControlTime >= UnityEngine.Time.realtimeSinceStartup)
                {
                    UserMessage(player, "tooFast");
                    return;
                }

                if (usePermissions && !ins.permission.UserHasPermission(player.UserIDString, $"pets.{npcPet.ShortPrefabName}"))
                {
                    UserMessage(player, "noPerms");
                    return;
                }

                nextControlTime = UnityEngine.Time.realtimeSinceStartup + tameTimer;

                npcAi       = npcPet.gameObject.AddComponent <NpcAI>();
                npcAi.owner = this;

                UserMessage(player, "petSet");
            }
Exemple #2
0
        public NpcActorModule(BaseNpc Master)
            : base(Master)
        {
            Animation_ = new NpcAnimation(Master.GetComponent <Animator>());
            Fsm_       = new BaseFsm(Master);

            Direction = NpcDirection.Right;
        }
        private object CanNPCEat(BaseNpc entity, BaseEntity target)
        {
            NpcAI npcAi = entity.GetComponent <NpcAI>();

            if (npcAi != null)
            {
                return(npcAi.action == Act.Eat);
            }
            return(null);
        }
        private object CanAnimalAttack(BaseNpc entity, BasePlayer player)
        {
            NpcAI npcAi = entity.GetComponent <NpcAI>();

            if (npcAi != null && npcAi.owner.player == player)
            {
                return(false);
            }
            return(null);
        }
Exemple #5
0
        object CanNpcAttack(BaseNpc entity, BaseEntity target)
        {
            var npcAi = entity.GetComponent <NpcAI>();

            if (npcAi != null && target is BasePlayer && npcAi.owner.player == target as BasePlayer)
            {
                return(false);
            }
            return(null);
        }