コード例 #1
0
 public override void FindTarget(PlayerController controller, ActorInstance.Trigger triggerInst, ref List <CharacterPawn> targets)
 {
     if (triggerInst.parentRoom != null && triggerInst.parentRoom.PawnsInRoom != null)
     {
         targets.AddRange(triggerInst.parentRoom.PawnsInRoom);
     }
 }
コード例 #2
0
 public virtual ActorInstance.Trigger GenerateTrigger()
 {
     ActorInstance.Trigger trigger = null;
     if (TriggerType != null)
     {
         trigger        = new ActorInstance.Trigger(TriggerType);
         trigger.socket = this;
     }
     return(trigger);
 }
コード例 #3
0
 public virtual void FindTarget(PlayerController controller, ActorInstance.Trigger instance, ref List <CharacterPawn> targets)
 {
     targets.Clear();
     if (targetFinder == null)
     {
         targets.Add(controller.Pawn);
     }
     else
     {
         targetFinder.FindTarget(controller, instance, ref targets);
     }
 }
コード例 #4
0
 public override bool Check(ActorInstance.Trigger trigger)
 {
     if (NameList != null)
     {
         foreach (string name in NameList)
         {
             if (trigger.parentRoom.RoomProp.roomName.Equals(name))
             {
                 return(true);
             }
         }
     }
     return(false);
 }
コード例 #5
0
        protected override void _OnLoad(ActorInstance.ActorBase actor)
        {
            base._OnLoad(actor);

            ActorInstance.Room roomInst = actor as ActorInstance.Room;
            if (roomInst != null)
            {
                roomInst.mono = roomInst.actorTrans.GetComponent <RoomMono>();
            }
            else
            {
                Debug.LogErrorFormat("Room {0} OnLoad an actor which is NOT a room instance!", name);
            }

            int index = 0;

            //init connectors
            foreach (ConnectorSocket socket in ConnectorSockets)
            {
                ActorInstance.Trigger   trig      = socket.GenerateTrigger();
                ActorInstance.Connector connector = trig as ActorInstance.Connector;
                if (roomInst.ConnectorList == null)
                {
                    roomInst.ConnectorList = new List <ActorInstance.Connector>();
                }

                if (connector == null)
                {
                    Debug.LogErrorFormat("{0} connector {1} is null!", roomName, index);
                }
                else
                {
                    roomInst.ConnectorList.Add(connector);
                    connector.parentRoom = roomInst;
                    connector.SetParent(roomInst.actorTrans, socket.LocalPosition, Quaternion.Euler(socket.LocalEulerRotation));
                }
                index++;
            }

            //init triggers
            foreach (TriggerSocket socket in TriggerSockets)
            {
                ActorInstance.Trigger trigger = socket.GenerateTrigger();
                trigger.parentRoom = roomInst;
                trigger.SetParent(roomInst.actorTrans, socket.LocalPosition, Quaternion.Euler(socket.LocalEulerRotation));
            }
        }
コード例 #6
0
 public override bool Check(ActorInstance.Trigger trigger)
 {
     if (base.Check(trigger))
     {
         return(true);
     }
     ActorInstance.Connector conn = trigger as ActorInstance.Connector;
     if (conn != null && conn.ConnectType == Connector.CONNECTOR_TYPE.NO_WAY) //window
     {
         if (GameLoader.Instance.GetRoomByLogicPosition(conn.ConnectToPos) == null)
         {
             //windows which has no room at the other side
             return(true);
         }
     }
     return(false);
 }
コード例 #7
0
        protected override void _OnLoad(ActorInstance.ActorBase actor)
        {
            base._OnLoad(actor);
            ActorInstance.Trigger triggerInst = actor as ActorInstance.Trigger;
            if (triggerInst != null)
            {
                triggerInst.mono = triggerInst.actorTrans.GetComponent <TriggerMono>();

                if (!AutoEnable)
                {
                    triggerInst.mono.Enable(false);
                }
                if (!ShowByDefault)
                {
                    triggerInst.mono.Show(false);
                }

                if (CanRemoteTrigger)
                {
                    GameLoader.Instance.RegisterRemoteTrigger(triggerInst);
                }
            }
            else
            {
                Debug.LogErrorFormat("Trigger {0} OnLoad an actor which is NOT a trigger instance!", name);
            }

            if (EntryEvents != null)
            {
                foreach (var e in EntryEvents)
                {
                    e.Init();
                }
            }
            if (ExitEvents != null)
            {
                foreach (var e in ExitEvents)
                {
                    e.Init();
                }
            }
        }
コード例 #8
0
 public virtual void FindTarget(PlayerController controller, ActorInstance.Trigger instance, ref List <CharacterPawn> targets)
 {
 }
コード例 #9
0
ファイル: TriggerFilter.cs プロジェクト: brooshe/Roguelike
 public virtual bool Check(ActorInstance.Trigger trigger)
 {
     return(true);
 }