Exemplo n.º 1
0
 public EventPage(IAudioEngine s, MapEventBase p, SaveData save)
     : base(s)
 {
     this.parent       = p;
     this.savedate     = save;
     this.eventmanager = new EventManager(this.parent.parent, this.sound);
 }
Exemplo n.º 2
0
 public EffectMake(
     IAudioEngine s,
     EventManager m,
     int effectNumber,
     string ID,
     int X,
     int Y,
     int Z,
     int nORv,
     int interval,
     int randomXY,
     int rendType,
     string SE,
     SceneMap parent,
     MapField field,
     MapEventBase event_,
     SaveData save)
     : base(s, m, save)
 {
     this.NoTimeNext   = true;
     this.effectNumber = effectNumber;
     this.Z            = Z;
     this.X            = X;
     this.Y            = Y;
     if (event_ != null)
     {
         this.event_ = event_;
     }
     this.nORv     = nORv;
     this.field    = field;
     this.parent   = parent;
     this.ID       = ID;
     this.interval = interval;
     this.randomXY = randomXY;
     this.rendType = rendType;
     try
     {
         this.SE = (SoundEffect)Enum.Parse(typeof(SoundEffect), SE);
     }
     catch
     {
         this.SE = SoundEffect.none;
     }
 }
Exemplo n.º 3
0
 public void InteriorSet()
 {
     if (!this.masterMake)
     {
         this.backNo = this.save.ValList[13];
         this.back   = BackgroundBase.BackMake(this.backNo);
         for (int index = 0; index < this.Events.Count; ++index)
         {
             if (this.Events[index].ID.Contains("InteriorItem"))
             {
                 this.masterList.Add(this.Events[index]);
             }
         }
         this.masterMake = true;
     }
     this.Events.RemoveAll(i => i.ID.Contains("InteriorItem"));
     foreach (Interior interior in this.save.interiors)
     {
         Interior i = interior;
         if (i.set)
         {
             MapEventBase     mapEventBase1 = this.masterList.Find(iv => iv.ID.Contains($"InteriorItem{i.number + 1}"));
             MapEventBase     mapEventBase2 = new MapEventBase(this.sound, this.parent, new Point(i.posiX, i.posiY), 0, MapCharacterBase.ANGLE.DOWN, this, mapEventBase1.ID, this.save, "");
             List <EventPage> eventPageList = new List <EventPage>();
             foreach (EventPage eventPage1 in mapEventBase1.eventPages)
             {
                 EventPage eventPage2 = eventPage1.Clone(mapEventBase2);
                 if (i.rebirth)
                 {
                     eventPage2.Rebirth();
                 }
                 eventPageList.Add(eventPage2);
             }
             EventPage[] array = eventPageList.ToArray();
             mapEventBase2.eventPages = array;
             foreach (EventPage eventPage in mapEventBase2.eventPages)
             {
                 eventPage.ParentSet(mapEventBase2);
             }
             this.Events.Add(mapEventBase2);
         }
     }
 }
Exemplo n.º 4
0
        private static bool IsOrderingSkipped(MapEventBase mcb, Vector2 camera, double mapXAdjust)
        {
            var page = mcb?.LunPage;

            if (page == null)
            {
                return(false);
            }
            if (!page.character && (page.graphicNo[2] == 0 || page.graphicNo[3] == 0))
            {
                return(true);
            }

            Vector2 center     = new Vector2(mcb.Position.X, mcb.Position.Y);
            var     cameraRect = new RectangleF(0, 0, 240, 160);

            center += new Vector2(page.hitShift.X, page.hitShift.Y);
            if (page.hitform == true)
            {
                center += new Vector2(-8, -8);
            }
            if (mcb is MysteryData)
            {
                center += new Vector2(-10, -10);
            }

            var graphicPosX         = (float)(120.0 + mapXAdjust + center.X * 2.0 - center.Y * 2.0);
            var graphicPosY         = (float)(32.0 + center.X + center.Y + mcb.Position.Z + 24.0);
            var cameraTLRelativePos = new Vector2(graphicPosX - camera.X, graphicPosY - camera.Y);

            var graphicWidth  = (page.character ? 64 : page.graphicNo[2]) / 2;
            var graphicHeight = (page.character ? 96 : page.graphicNo[3]) / 2;

            var cameraTLRelativeRect1 = RectangleF.FromLTRB(
                cameraTLRelativePos.X - graphicWidth,
                cameraTLRelativePos.Y - graphicHeight,
                cameraTLRelativePos.X + graphicWidth,
                cameraTLRelativePos.Y + graphicHeight);

            return(!cameraTLRelativeRect1.IntersectsWith(cameraRect));
        }
Exemplo n.º 5
0
        public override void Update()
        {
            this.field = this.parent.Field;
            Point po = new Point(0, 0);
            int   floor;

            if (this.nORv == 1)
            {
                po    = new Point(this.savedata.ValList[this.X], this.savedata.ValList[this.Y]);
                floor = this.savedata.ValList[this.Z];
            }
            else if (this.nORv == 0)
            {
                po    = new Point(this.X, this.Y);
                floor = this.Z;
            }
            else if (this.nORv == 2)
            {
                po    = new Point((int)this.event_.position.X, (int)this.event_.position.Y);
                floor = (int)this.event_.position.Z;
            }
            else
            {
                Vector3 position;
                if (this.name == "プレイヤー")
                {
                    position = this.parent.Player.position;
                    floor    = this.parent.Player.floor;
                }
                else
                {
                    MapEventBase mapEventBase = this.parent.Field.Events.Find(e => e.ID == this.name);
                    position = mapEventBase.position;
                    floor    = mapEventBase.floor;
                }
                po = new Point((int)position.X, (int)position.Y);
            }
            this.field.effectgenerator.Add(new EffectGenerator(this.sound, this.parent, po, floor, this.field, this.ID, this.effectNumber, this.interval, this.randomXY, this.rendType, this.SE));
            this.EndCommand();
        }
Exemplo n.º 6
0
        public EventPage Clone(MapEventBase p)
        {
            EventPage eventPage = new EventPage(this.sound, p, this.savedate)
            {
                character = this.character
            };

            foreach (EventBase eventBase in this.eventmanager.events)
            {
                eventPage.eventmanager.events.Add(eventBase);
            }
            eventPage.graphicName = this.graphicName;
            eventPage.graphicNo   = this.graphicNo;
            eventPage.graphicName = this.graphicName;
            eventPage.hitform     = this.hitform;
            eventPage.hitrange    = this.hitrange;
            eventPage.hitShift    = this.hitShift;
            List <EventMove> eventMoveList = new List <EventMove>();

            foreach (EventMove eventMove in this.move)
            {
                eventMoveList.Add(eventMove.Clone(p));
            }
            eventPage.move = eventMoveList.ToArray();
            List <None> noneList = new List <None>();

            foreach (None pageStartterm in this.pageStartterms)
            {
                noneList.Add(pageStartterm);
            }
            eventPage.pageStartterms = noneList.ToArray();
            eventPage.rendType       = this.rendType;
            eventPage.speed          = this.speed;
            eventPage.startterms     = this.startterms;
            eventPage.rebirth        = this.rebirth;
            return(eventPage);
        }
Exemplo n.º 7
0
    public void CheckEvent()
    {
        if (TimeManager.GetInstance().sleep)
        {
            return;
        }
        Vector3Int vec = TileManager.GetInstance().MousePosToCell();

        if (vec.x == 99999)
        {
            return;
        }
        MapEventBase m = MapEventGet(vec);

        if (Input.GetMouseButtonDown(0) || Input.GetMouseButtonDown(1))
        {
            if (m != null)
            {
                if (m.eventStr != "Field" && FieldManager.GetInstance().View.GetIsView())
                {
                    FieldManager.GetInstance().View.PlantVSetActive(false);
                }
                if (menu.State == MenuState.EventSelect)
                {
                    if (!buttonPressd)
                    {
                        m.MenuClose();
                        FieldManager.GetInstance().View.PlantVSetActive(false);
                        menu.State = MenuState.None;
                        m          = null;
                    }
                    else
                    {
                        buttonPressd = false;
                    }
                }
            }
            else
            {
                if (menu.State == MenuState.EventSelect)
                {
                    //cullentMenu != null &&
                    if (!buttonPressd)
                    {
                        cullentMenu.MenuClose();
                        FieldManager.GetInstance().View.PlantVSetActive(false);
                        menu.State = MenuState.None;
                    }
                    else
                    {
                        buttonPressd = false;
                    }
                }

                FieldManager.GetInstance().View.PlantVSetActive(false);
            }
        }
        switch (menu.State)
        {
        case MenuState.None:
        case MenuState.ItemSet:
            break;

        default:
            return;
        }
        if (m != null)
        {
            if (Input.GetMouseButtonDown(0))
            {
                if (m != null)
                {
                    m.OnLeftClickRun();
                }
            }
            else if (Input.GetMouseButtonDown(1))
            {
                if (m != null)
                {
                    m.OnRightClickRun();
                }
            }
            else
            {
                cullentMenu = m;
                m.OnHoverRun(vec);
                mousePoint.SetActive(true);
                Vector3 pos = tile.CellToWorldPos(tile.MousePosToCell());
                pos.x += 0.5f;
                pos.y += 0.5f;
                mousePoint.transform.position = pos;
            }
        }
        else
        {
            bar.SetHideHotBar(false);
            facilities.SetHideHotBar(false);
            mousePoint.SetActive(false);
        }
    }
Exemplo n.º 8
0
        public MapField(IAudioEngine s, string txtname, SaveData save, SceneMap p)
            : base(s)
        {
            this.save   = save;
            this.parent = p;
            this.parent.parent.KeepActiveTexList.RemoveAll(e => !e.Contains(txtname));
            this.parent.parent.TexClear(false);
            this.mapname = txtname;
            save.nowMap  = txtname;
            string path = NSGame.Debug.MaskMapFile ? "data/" + txtname + ".she" : "map/" + txtname + ".txt";

            if (!File.Exists(path))
            {
                return;
            }
            StreamReader reader = new StreamReader(path, Encoding.GetEncoding("Shift_JIS"));
            string       A1     = reader.ReadLine();

            if (NSGame.Debug.MaskMapFile)
            {
                A1 = TCDEncodeDecode.EncMapScript(A1);
            }
            string[] strArray1 = A1.Split(',');
            int      length1   = int.Parse(strArray1[0]);
            int      length2   = int.Parse(strArray1[1]);
            int      length3   = int.Parse(strArray1[8]);

            this.rendX         = int.Parse(strArray1[2]);
            this.rendY         = int.Parse(strArray1[3]);
            this.rect          = new Rectangle(0, 0, int.Parse(strArray1[4]), int.Parse(strArray1[5]));
            save.plase         = ShanghaiEXE.Translate(strArray1[6]);
            this.height        = int.Parse(strArray1[7]);
            this.map           = new UnboundedMap(new byte[length3, length1, length2]);
            this.backNo        = int.Parse(strArray1[9]);
            this.back          = BackgroundBase.BackMake(this.backNo);
            this.encountCap[0] = int.Parse(strArray1[10]);
            this.encountCap[1] = int.Parse(strArray1[11]);
            string str1 = strArray1[12];

            this.graphicName = new string[length3 + (length3 - 1)];
            for (int index = 0; index < ((IEnumerable <string>) this.graphicName).Count <string>(); ++index)
            {
                this.graphicName[index] = str1 + (index + 1).ToString();
            }
            string str2;

            for (int index1 = 0; index1 < this.map.GetLength(0); ++index1)
            {
                for (int index2 = 0; index2 < this.map.GetLength(2); ++index2)
                {
                    string A2 = reader.ReadLine();
                    if (NSGame.Debug.MaskMapFile)
                    {
                        A2 = TCDEncodeDecode.EncMapScript(A2);
                    }
                    string[] strArray2 = A2.Split(',');
                    for (int index3 = 0; index3 < this.map.GetLength(1); ++index3)
                    {
                        this.map[index1, index3, index2] = 0;
                        this.map[index1, index3, index2] = byte.Parse(strArray2[index3]);
                    }
                }
                string A3 = reader.ReadLine();
                if (NSGame.Debug.MaskMapFile)
                {
                    str2 = TCDEncodeDecode.EncMapScript(A3);
                }
            }
            this.encounts.Clear();
            string A4;

            while ((A4 = reader.ReadLine()) != "")
            {
                if (NSGame.Debug.MaskMapFile)
                {
                    A4 = TCDEncodeDecode.EncMapScript(A4);
                }
                if (!(A4 == ""))
                {
                    EventManager m         = new EventManager(this.sound);
                    string[]     strArray2 = A4.Split(':');
                    m.AddEvent(new BgmSave(this.sound, m, this, save));
                    Battle battle;
                    if (strArray2.Length >= 20)
                    {
                        battle = new NSEvent.Battle(this.sound,
                                                    m,
                                                    int.Parse(strArray2[1]),
                                                    byte.Parse(strArray2[2]),
                                                    int.Parse(strArray2[3]),
                                                    int.Parse(strArray2[4]),
                                                    int.Parse(strArray2[5]),
                                                    int.Parse(strArray2[6]),
                                                    int.Parse(strArray2[7]),
                                                    int.Parse(strArray2[8]),
                                                    ShanghaiEXE.Translate(strArray2[9]),
                                                    int.Parse(strArray2[10]),
                                                    byte.Parse(strArray2[11]),
                                                    int.Parse(strArray2[12]),
                                                    int.Parse(strArray2[13]),
                                                    int.Parse(strArray2[14]),
                                                    int.Parse(strArray2[15]),
                                                    int.Parse(strArray2[16]),
                                                    int.Parse(strArray2[17]),
                                                    ShanghaiEXE.Translate(strArray2[18]),
                                                    int.Parse(strArray2[19]),
                                                    byte.Parse(strArray2[20]),
                                                    int.Parse(strArray2[21]),
                                                    int.Parse(strArray2[22]),
                                                    int.Parse(strArray2[23]),
                                                    int.Parse(strArray2[24]),
                                                    int.Parse(strArray2[25]),
                                                    int.Parse(strArray2[26]),
                                                    ShanghaiEXE.Translate(strArray2[27]),
                                                    (Panel.PANEL) int.Parse(strArray2[28]),
                                                    (Panel.PANEL) int.Parse(strArray2[29]),
                                                    int.Parse(strArray2[30]),
                                                    bool.Parse(strArray2[31]),
                                                    bool.Parse(strArray2[32]),
                                                    bool.Parse(strArray2[33]),
                                                    bool.Parse(strArray2[34]),
                                                    strArray2[35],
                                                    this.backNo,
                                                    save);
                    }
                    else
                    {
                        battle = new NSEvent.Battle(this.sound,
                                                    m,
                                                    (EnemyBase.VIRUS)Enum.Parse(typeof(EnemyBase.VIRUS), strArray2[1]),
                                                    byte.Parse(strArray2[2]),
                                                    int.Parse(strArray2[3]),
                                                    int.Parse(strArray2[4]),
                                                    (EnemyBase.VIRUS)Enum.Parse(typeof(EnemyBase.VIRUS), strArray2[5]),
                                                    byte.Parse(strArray2[6]),
                                                    int.Parse(strArray2[7]),
                                                    int.Parse(strArray2[8]),
                                                    (EnemyBase.VIRUS)Enum.Parse(typeof(EnemyBase.VIRUS), strArray2[9]),
                                                    byte.Parse(strArray2[10]),
                                                    int.Parse(strArray2[11]),
                                                    int.Parse(strArray2[12]),
                                                    (Panel.PANEL)Enum.Parse(typeof(Panel.PANEL), strArray2[13]),
                                                    (Panel.PANEL)Enum.Parse(typeof(Panel.PANEL), strArray2[14]),
                                                    int.Parse(strArray2[15]),
                                                    bool.Parse(strArray2[16]),
                                                    bool.Parse(strArray2[17]),
                                                    bool.Parse(strArray2[18]),
                                                    save);
                    }
                    m.AddEvent(battle);
                    m.AddEvent(new BgmLoad(this.sound, m, this, save));
                    m.AddEvent(new Fade(this.sound, m, 17, 0, 0, 0, 0, false, save));
                    this.encounts.Add(m);
                }
                else
                {
                    break;
                }
            }
            string A5 = reader.ReadLine();

            if (NSGame.Debug.MaskMapFile)
            {
                A5 = TCDEncodeDecode.EncMapScript(A5);
            }
            string[]             strArray3         = A5.Split(':');
            List <RandomMystery> randomMysteryList = new List <RandomMystery>();

            foreach (string str3 in strArray3)
            {
                if (str3 == "")
                {
                    break;
                }
                if (str3 == "random")
                {
                    continue;
                }
                string[] strArray2 = str3.Split(',');
                randomMysteryList.Add(new RandomMystery()
                {
                    itemType   = int.Parse(strArray2[0]),
                    itemNumber = int.Parse(strArray2[1]),
                    itemSub    = int.Parse(strArray2[2]),
                    getInfo    = ShanghaiEXE.Translate(strArray2[3])
                });
            }
            this.randomMystery = randomMysteryList.ToArray();
            string A6 = reader.ReadLine();

            if (NSGame.Debug.MaskMapFile)
            {
                str2 = TCDEncodeDecode.EncMapScript(A6);
            }
            var    eventIndex = 0;
            string A7;

            while ((A7 = reader.ReadLine()) != null)
            {
                if (NSGame.Debug.MaskMapFile)
                {
                    A7 = TCDEncodeDecode.EncMapScript(A7);
                }
                string[] strArray2 = A7.Split(':');
                if (strArray2[0] == "ID")
                {
                    string id = strArray2[1];
                    string A2 = reader.ReadLine();
                    if (NSGame.Debug.MaskMapFile)
                    {
                        A2 = TCDEncodeDecode.EncMapScript(A2);
                    }
                    string[] strArray4 = A2.Split(':');
                    Point    po        = new Point(int.Parse(strArray4[1]), int.Parse(strArray4[2]));
                    var      mapEvent  = new MapEventBase(s, this.parent, po, int.Parse(strArray4[3]), MapCharacterBase.ANGLE.UP, this, id, save, reader, this.mapname);
                    mapEvent.index = eventIndex;
                    this.Events.Add(mapEvent);
                }
                else
                {
                    string id = strArray2[1];
                    string A2 = reader.ReadLine();
                    if (NSGame.Debug.MaskMapFile)
                    {
                        A2 = TCDEncodeDecode.EncMapScript(A2);
                    }
                    string[]      strArray4 = A2.Split(':');
                    Point         po        = new Point(int.Parse(strArray4[1]), int.Parse(strArray4[2]));
                    int           floor     = int.Parse(strArray4[3]);
                    RandomMystery random    = new RandomMystery();
                    string        A3        = reader.ReadLine();
                    if (NSGame.Debug.MaskMapFile)
                    {
                        A3 = TCDEncodeDecode.EncMapScript(A3);
                    }
                    string[] strArray5 = A3.Split(':')[1].Split(',');
                    random.type       = int.Parse(strArray5[0]);
                    random.itemType   = int.Parse(strArray5[1]);
                    random.itemNumber = int.Parse(strArray5[2]);
                    random.itemSub    = int.Parse(strArray5[3]);
                    random.getInfo    = ShanghaiEXE.Translate(strArray5[4]);
                    random.flugNumber = int.Parse(strArray5[5]);
                    var mysteryData = new MysteryData(s, this.parent, po, floor, MapCharacterBase.ANGLE.UP, this, id, save, reader, random);
                    mysteryData.index = eventIndex;
                    this.Events.Add(mysteryData);
                }
                eventIndex++;
            }
            reader.Close();
            this.threadEnd = false;
            this.MapTexLoad();
            this.threadTexRead = new Thread(new ThreadStart(this.MapTexLoad));
            this.threadTexRead.Start();
            this.parent.eventmanagerParallel.events.Clear();
            this.parent.eventmanagerParallel.playevent = false;
        }
Exemplo n.º 9
0
 public void ParentSet(MapEventBase eb)
 {
     this.parent = eb;
 }
Exemplo n.º 10
0
 public override void Update()
 {
     if (!this.nameOn)
     {
         if (this.ID == -1)
         {
             for (int index = 0; index < this.moves.Length; ++index)
             {
                 if (this.moves[index] != null)
                 {
                     this.moves[index].EventSet(map.Player);
                 }
             }
             this.map.Player.moveOrder = new NSMap.Character.EventMove[this.moves.Length];
             this.moves.CopyTo(map.Player.moveOrder, 0);
             this.map.Player.MoveEndPosiSet();
             this.map.Player.movingOrder = 0;
         }
         else
         {
             for (int index = 0; index < this.moves.Length; ++index)
             {
                 this.moves[index].EventSet(this.field.Events[this.ID]);
             }
             this.field.Events[this.ID].moveOrder = (NSMap.Character.EventMove[]) this.moves.Clone();
             this.field.Events[this.ID].MoveEndPosiSet();
             this.field.Events[this.ID].movingOrder = 0;
         }
     }
     else if (this.IDname == "プレイヤー")
     {
         for (int index = 0; index < this.moves.Length; ++index)
         {
             if (this.moves[index] != null)
             {
                 this.moves[index].EventSet(map.Player);
             }
         }
         this.map.Player.moveOrder = new NSMap.Character.EventMove[this.moves.Length];
         this.moves.CopyTo(map.Player.moveOrder, 0);
         this.map.Player.MoveEndPosiSet();
         this.map.Player.movingOrder = 0;
     }
     else
     {
         try
         {
             MapEventBase mapEventBase = this.field.Events.Find(e => e.ID == this.IDname);
             for (int index = 0; index < this.moves.Length; ++index)
             {
                 this.moves[index].EventSet(mapEventBase);
             }
             mapEventBase.moveOrder = (NSMap.Character.EventMove[]) this.moves.Clone();
             mapEventBase.MoveEndPosiSet();
             mapEventBase.movingOrder = 0;
         }
         catch
         {
         }
     }
     this.movesAdded = true;
     this.EndCommand();
 }