private void BuyEvent() { string str1 = ""; string str2 = ""; switch (this.shopType) { case 0: if (this.goods[this.Select].numberNo > 0) { ChipS chipS = new ChipS(this.goods[this.Select].numberNo, this.goods[this.Select].numberSub); str1 = chipS.Name; str2 = chipS.Code == 26 ? " *" : " " + Enum.GetName(typeof(ChipFolder.CODE), (ChipFolder.CODE)chipS.Code); this.price = this.goods[this.Select].price; break; } str1 = ShanghaiEXE.Translate("Shop.HPMemory"); this.price = this.goods[this.Select].price + this.goods[this.Select].numberSub * this.savedata.ShopCount[this.shopNo, this.Select]; break; case 1: str1 = SubChip.NameSet(this.goods[this.Select].numberNo); this.price = SubChip.PriceSet(this.goods[this.Select].numberNo) - this.goods[this.Select].numberSub; break; case 2: str1 = AddOnBase.AddOnSet(this.goods[this.Select].numberNo, this.goods[this.Select].numberSub).name; if (this.goods[this.Select].numberSub > 0) { str2 = " " + AddOnBase.ColorToString(this.goods[this.Select].numberSub); } this.price = this.goods[this.Select].price; break; case 3: str1 = Shop.INTERIOR.GetItem(this.goods[this.Select].numberNo); this.price = this.goods[this.Select].price; break; } this.eventmanager.events.Clear(); if (this.moneyType == 0) { var question = new Dialogue(); var options = ShanghaiEXE.Translate("Shop.ZennyOptions"); switch (this.assistant) { case 0: question = ShanghaiEXE.Translate("Shop.Assistant1ZennyDialogue1QuestionFormat").Format(str1, str2, this.price); break; case 1: question = ShanghaiEXE.Translate("Shop.Assistant2ZennyDialogue1QuestionFormat").Format(str1, str2, this.price); break; case 2: question = ShanghaiEXE.Translate("Shop.Assistant3ZennyDialogue1QuestionFormat").Format(str1, str2, this.price); break; case 3: question = ShanghaiEXE.Translate("Shop.Assistant4ZennyDialogue1QuestionFormat").Format(str1, str2, this.price); break; } this.eventmanager.AddEvent(new Question(this.sound, this.eventmanager, question[0], question[1], options[0], options[1], true, true, faceSeet, this.faceNo, this.savedata)); } else { var question = new Dialogue(); var options = ShanghaiEXE.Translate("Shop.OtherOptions"); switch (this.assistant) { case 0: question = ShanghaiEXE.Translate("Shop.Assistant1OtherDialogue1QuestionFormat").Format(str1, str2); break; case 1: question = ShanghaiEXE.Translate("Shop.Assistant2OtherDialogue1QuestionFormat").Format(str1, str2); break; case 2: question = ShanghaiEXE.Translate("Shop.Assistant3OtherDialogue1QuestionFormat").Format(str1, str2); break; case 3: question = ShanghaiEXE.Translate("Shop.Assistant4OtherDialogue1QuestionFormat").Format(str1, str2); break; } this.eventmanager.AddEvent(new Question(this.sound, this.eventmanager, question[0], question[1], options[0], options[1], true, true, faceSeet, this.faceNo, this.savedata)); } this.yesnoSelect = true; }
public override void Render(IRenderer dg) { if (this.shopmode) { this.field.back.Render(dg); this._rect = new Rectangle(656, 0, 160, 104); this._position = new Vector2(0.0f, 0.0f); dg.DrawImage(dg, "menuwindows", this._rect, true, this._position, Color.White); Vector2 point; for (int index = 0; index < Math.Min(5, this.goods.Length); ++index) { int num = 0; Color color = Color.White; if (this.goods[this.top + index].stock > 0 && this.savedata.ShopCount[this.shopNo, this.top + index] >= this.goods[this.top + index].stock) { color = Color.Gray; } switch (this.shopType) { case 0: if (this.goods[this.top + index].numberNo > 0) { ChipS chipS = new ChipS(this.goods[this.top + index].numberNo, this.goods[this.top + index].numberSub); AllBase.NAME[] nameArray = this.Nametodata(chipS.Name); point = new Vector2(16f, 12 + index * 16); this._position = new Vector2(point.X, point.Y); DrawBlockCharacters(dg, nameArray, 16, this._position, color, out this._rect, out this._position); this._position = new Vector2(88f, 12 + 16 * index); this._rect = new Rectangle(chipS.Code * 8, 32, 8, 16); dg.DrawImage(dg, "font", this._rect, true, this._position, color); num = this.goods[this.top + index].price; break; } AllBase.NAME[] nameArray1 = this.Nametodata(ShanghaiEXE.Translate("Shop.HPMemory")); point = new Vector2(16f, 12 + index * 16); this._position = new Vector2(point.X, point.Y); DrawBlockCharacters(dg, nameArray1, 16, this._position, color, out this._rect, out this._position); num = this.goods[this.top + index].price + this.goods[this.top + index].numberSub * this.savedata.ShopCount[this.shopNo, index]; if (this.savedata.ShopCount[this.shopNo, this.top + index] >= this.goods[this.top + index].stock) { num -= this.goods[this.top + index].numberSub; } break; case 1: AllBase.NAME[] nameArray2 = this.Nametodata(SubChip.NameSet(this.goods[this.top + index].numberNo)); point = new Vector2(16f, 12 + index * 16); this._position = new Vector2(point.X, point.Y); DrawBlockCharacters(dg, nameArray2, 16, this._position, color, out this._rect, out this._position); num = SubChip.PriceSet(this.goods[this.top + index].numberNo) - this.goods[this.top + index].numberSub; break; case 2: AllBase.NAME[] nameArray3 = this.Nametodata(AddOnBase.AddOnSet(this.goods[this.top + index].numberNo, this.goods[this.top + index].numberSub).name); point = new Vector2(16f, 12 + index * 16); this._position = new Vector2(point.X, point.Y); DrawBlockCharacters(dg, nameArray3, 16, this._position, color, out this._rect, out this._position); AllBase.NAME[] nameArray4 = this.Nametodata(AddOnBase.ColorToAlphabet(this.goods[this.top + index].numberSub)); point = new Vector2(88f, 12 + index * 16); this._position = new Vector2(point.X, point.Y); DrawBlockCharacters(dg, nameArray4, 16, this._position, color, out this._rect, out this._position); num = this.goods[this.top + index].price; break; case 3: point = new Vector2(16f, 14 + index * 16); ++point.X; ++point.Y; dg.DrawMiniText(Shop.INTERIOR.GetItem(this.goods[this.top + index].numberNo), point, Color.FromArgb(32, 32, 32)); --point.X; --point.Y; dg.DrawMiniText(Shop.INTERIOR.GetItem(this.goods[this.top + index].numberNo), point, Color.White); num = this.goods[this.top + index].price; break; } this._position = new Vector2(8f, 12 + 16 * index); AllBase.NAME[] nameArray5 = this.moneyType != 0 ? this.Nametodata(num.ToString()) : this.Nametodata(num.ToString() + "Z"); point = new Vector2(152 - nameArray5.Length * 8, 12 + index * 16); foreach (var data in ((IEnumerable <AllBase.NAME>)nameArray5).Select((v, j) => new { v, j })) { this._rect = new Rectangle((int)data.v * 8, 16, 8, 16); this._position = new Vector2(point.X + 8 * data.j, point.Y); dg.DrawImage(dg, "font", this._rect, true, this._position, color); } } this._rect = new Rectangle(240 + 16 * this.cursolanime, 48, 16, 16); this._position = new Vector2(0.0f, 12 + this.cursol * 16); dg.DrawImage(dg, "window", this._rect, true, this._position, Color.White); float num1 = this.overTop != 0 && this.top != 0 ? 80f / overTop * top : 0.0f; this._rect = new Rectangle(176, 168, 8, 8); this._position = new Vector2(152f, 8f + num1); dg.DrawImage(dg, "menuwindows", this._rect, true, this._position, Color.White); if (this.top > 0) { this._rect = new Rectangle(160 + 8 * this.cursolanime, 208, 8, 8); this._position = new Vector2(84f, 4f); dg.DrawImage(dg, "menuwindows", this._rect, true, this._position, Color.White); } if (this.top < this.overTop) { this._rect = new Rectangle(184 + 8 * this.cursolanime, 208, 8, 8); this._position = new Vector2(84f, 92f); dg.DrawImage(dg, "menuwindows", this._rect, true, this._position, Color.White); } this._rect = new Rectangle(0, 0, 240, 56); this._position = new Vector2(0.0f, 104f); dg.DrawImage(dg, "window", this._rect, true, this._position, Color.White); if (!this.help) { this._position = new Vector2(5f, 108f); this._rect = new Rectangle(0, faceNo * 48, 40, 48); string te = "Face" + this.faceSeet.ToString(); dg.DrawImage(dg, te, this._rect, true, this._position, Color.White); if (!this.eventmanager.playevent) { for (int index = 0; index < this.massage.Length; ++index) { this._position = new Vector2(48f, 108 + 16 * index); dg.DrawText(this.massage[index], this._position, this.savedata); } } } else { string[] strArray = new string[3] { "", "", "" }; switch (this.shopType) { case 0: if ((uint)this.goods[this.Select].numberNo > 0U) { ChipFolder chipFolder = new ChipFolder(null); chipFolder.SettingChip(this.goods[this.Select].numberNo); this._position = new Vector2(80f, 8f); if (chipFolder.chip.dark) { this._rect = new Rectangle(848, 216, 80, 96); } else if (chipFolder.chip.navi) { this._rect = new Rectangle(848, 120, 80, 96); } else { this._rect = new Rectangle(680, 120, 80, 96); } dg.DrawImage(dg, "menuwindows", this._rect, true, this._position, Color.White); this._position = new Vector2(89f, 25f); chipFolder.chip.GraphicsRender(dg, this._position, this.goods[this.Select].numberSub, true, true); strArray = chipFolder.chip.information; break; } var dialogue = ShanghaiEXE.Translate("Shop.HPMemoryDescriptionDialogue1"); strArray[0] = dialogue[0]; strArray[1] = dialogue[1]; break; case 1: strArray = SubChip.InfoSet(this.goods[this.Select].numberNo); break; case 2: AddOnBase addOnBase = AddOnBase.AddOnSet(this.goods[this.Select].numberNo, this.goods[this.Select].numberSub); addOnBase.Render(dg, false, false, new Vector2(72f, 40f), this); strArray = addOnBase.infomasion; break; } for (int index = 0; index < strArray.Length; ++index) { this._position = new Vector2(48f, 108 + 16 * index); dg.DrawText(strArray[index], this._position, this.savedata); } } switch (this.moneyType) { case 0: this._rect = new Rectangle(488, 232, 80, 40); this._position = new Vector2(160f, 0.0f); dg.DrawImage(dg, "menuwindows", this._rect, true, this._position, Color.White); break; case 1: this._rect = ShanghaiEXE.language == 1 ? new Rectangle(800, 712, 80, 40) : new Rectangle(712, 712, 80, 40); this._position = new Vector2(160f, 0.0f); dg.DrawImage(dg, "menuwindows", this._rect, true, this._position, Color.White); break; case 2: this._rect = ShanghaiEXE.language == 1 ? new Rectangle(800, 752, 80, 40) : new Rectangle(720, 752, 80, 40); this._position = new Vector2(160f, 0.0f); dg.DrawImage(dg, "menuwindows", this._rect, true, this._position, Color.White); break; case 3: this._rect = ShanghaiEXE.language == 1 ? new Rectangle(800, 792, 80, 40) : new Rectangle(720, 792, 80, 40); this._position = new Vector2(160f, 0.0f); dg.DrawImage(dg, "menuwindows", this._rect, true, this._position, Color.White); break; } if (this.moneyType == 0) { if (this.savedata.Money < this.savedata.moneyover) { AllBase.NAME[] nameArray = this.Nametodata(this.savedata.Money.ToString() + "Z"); point = new Vector2(232 - nameArray.Length * 8, 16f); foreach (var data in ((IEnumerable <AllBase.NAME>)nameArray).Select((v, j) => new { v, j })) { this._rect = new Rectangle((int)data.v * 8, 88, 8, 16); this._position = new Vector2(point.X + 8 * data.j, point.Y); dg.DrawImage(dg, "font", this._rect, true, this._position, Color.White); } } else { this._position = new Vector2(164f, 16f); this.TextRender(dg, ShanghaiEXE.Translate("Shop.Billionaire"), false, this._position, false); } } else if (this.savedata.havePeace[this.moneyType - 1] < this.savedata.moneyover) { AllBase.NAME[] nameArray = this.Nametodata(string.Format(ShanghaiEXE.Translate("Shop.ZennyFormat"), this.savedata.havePeace[this.moneyType - 1])); point = new Vector2(232 - nameArray.Length * 8, 16f); this._position = new Vector2(point.X, point.Y); DrawBlockCharacters(dg, nameArray, 88, this._position, Color.White, out this._rect, out this._position); } else { this._position = new Vector2(164f, 16f); this.TextRender(dg, ShanghaiEXE.Translate("Shop.Billionaire"), false, this._position, false); } this._rect = new Rectangle(432, 232, 56, 40); this._position = new Vector2(176f, 56f); dg.DrawImage(dg, "menuwindows", this._rect, true, this._position, Color.White); } if (this.eventmanager.playevent) { this.eventmanager.Render(dg); } if (this.alpha <= 0) { return; } Color color1 = Color.FromArgb(alpha, Color.Black); Rectangle _rect = new Rectangle(0, 0, 240, 160); Vector2 _point = new Vector2(0.0f, 0.0f); dg.DrawImage(dg, "fadescreen", _rect, true, _point, color1); }