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); }
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; } }
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); } } }
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)); }
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(); }
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); }
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); } }
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; }
public void ParentSet(MapEventBase eb) { this.parent = eb; }
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(); }