示例#1
0
 public AreaEvent()
 {
     AType = AreaEvent_Type.NONE;
     Name  = "";
     XVal  = -1;
     YVal  = -1;
 }
示例#2
0
 public AreaEvent(AreaEvent_Type aType, string name, int xVal, int yVal)
 {
     AType = aType;
     Name  = name;
     XVal  = xVal;
     YVal  = yVal;
 }
示例#3
0
 public AreaEvent(string sType, string name, int xVal, int yVal)
 {
     AType = StringToType(sType);
     Name  = name;
     XVal  = xVal;
     YVal  = yVal;
 }
示例#4
0
        public static String TypeToString(AreaEvent_Type a)
        {
            switch (a)
            {
            case AreaEvent_Type.CHANGESTAGENOW:
                return("CHANGESTAGENOW");

            case AreaEvent_Type.CHANGESTAGEUP:
                return("CHANGESTAGEUP");

            case AreaEvent_Type.CHANGESTAGEDOWN:
                return("CHANGESTAGEDOWN");

            case AreaEvent_Type.CHANGESTAGELEFT:
                return("CHANGESTAGELEFT");

            case AreaEvent_Type.CHANGESTAGERIGHT:
                return("CHANGESTAGERIGHT");

            case AreaEvent_Type.STARTPOINT:
                return("STARTPOINT");

            case AreaEvent_Type.INTERACT:
                return("INTERACT");

            case AreaEvent_Type.NONE:
            default:
                return("NONE");
            }
        }
示例#5
0
 public AreaEvent(AreaEvent_Type aType, Direction dir, string name, int xVal, int yVal)
 {
     AType = aType;
     Dir   = dir;
     Name  = name;
     XVal  = xVal;
     YVal  = yVal;
 }
示例#6
0
 public AreaEvent()
 {
     AType = AreaEvent_Type.NONE;
     Dir   = Direction.NONE;
     Name  = "";
     XVal  = -1;
     YVal  = -1;
 }
示例#7
0
        public AreaEvent GetAreaEvent(AreaEvent_Type aet, string name)
        {
            IEnumerable <AreaEvent> ie = from item in eventsSource where item.AType == aet & item.Name == name select item;

            if (ie.Count() > 0)
            {
                return(ie.First());
            }
            return(new AreaEvent());
        }
示例#8
0
        public List <AreaEvent> GetAreaEvent(AreaEvent_Type aet, int x, int y)
        {
            IEnumerable <AreaEvent> ie = from item in eventsSource where item.AType == aet & item.XVal == x & item.YVal == y select item;

            if (ie.Count() > 0)
            {
                return(ie.ToList());
            }
            return(new List <AreaEvent>());
        }
示例#9
0
        public List <AreaEvent> GetAreaEvent(AreaEvent_Type t, Direction d, String n, int x, int y)
        {
            IEnumerable <AreaEvent> ie = from item in eventsSource
                                         where (item.AType == t | t == AreaEvent_Type.NONE)
                                         & (item.Dir == d | d == Direction.NONE)
                                         & (item.Name == n | string.IsNullOrWhiteSpace(n))
                                         & (item.XVal == x | x == -1)
                                         & (item.YVal == y | y == -1)
                                         select item;

            if (ie.Count() > 0)
            {
                return(ie.ToList());
            }
            return(new List <AreaEvent>());
        }
示例#10
0
        private void MoveAndPlayEvent(PlayerState currentPs, PlayerState nextPs)
        {
            AreaEvent_Type eT = AreaEvent_Type.NONE;

            if (currentPs.pos != nextPs.pos) //si on arrive sur une nouvelle case, on jour l'event "ChangeStateNow" de la nouvelle case (exemple : porte de batiment, echelle, ...)
            {
                eT = AreaEvent_Type.ChangeStageNow;
            }

            if (currentPs.pos == nextPs.pos & currentPs.dir == nextPs.dir) //si on garde la même direction (exemple : sortie de batiment, trigger hautes herbes,...)
            {
                switch (currentPs.dir)
                {
                case Direction.DOWN:
                    eT = AreaEvent_Type.ChangeStageDown;
                    break;

                case Direction.UP:
                    eT = AreaEvent_Type.ChangeStageUp;
                    break;

                case Direction.LEFT:
                    eT = AreaEvent_Type.ChangeStageLeft;
                    break;

                case Direction.RIGHT:
                    eT = AreaEvent_Type.ChangeStageRight;
                    break;

                default:
                    eT = AreaEvent_Type.NONE;
                    break;
                }
            }
            List <AreaEvent> lae = myArea.listAreaEvents.GetAreaEvent(eT, (int)nextPs.pos.X, (int)nextPs.pos.Y);

            eventToTrigger = lae.Count > 0 ? lae.First() : new AreaEvent();
            ps             = nextPs;
        }