public override void TileProc(int aX, int aY, ref bool refContinue) { NWField f = Field; Step(aX, aY); if (f.IsBarrier(aX, aY)) { refContinue = false; } else { NWCreature c = (NWCreature)f.FindCreature(aX, aY); if (c != null && c.HasAffect(EffectID.eid_Death)) { RaceID race = c.Entry.Race; if (race == RaceID.crDefault || race == RaceID.crHuman) { if (c.IsPlayer) { c.Death(BaseLocale.GetStr(RS.rs_KilledByDeathRay), null); } else { c.Death(BaseLocale.Format(RS.rs_TheXIsDestroyed, new object[] { c.Name }), null); } } } } }
public void RecruitMercenary(NWCreature collocutor, NWCreature mercenary, bool byMoney) { bool res = true; if (byMoney) { int hPrice = (int)mercenary.HirePrice; if (Money < hPrice) { res = false; GlobalVars.nwrWin.ShowText(GlobalVars.nwrWin, BaseLocale.GetStr(RS.rs_NoMoney)); } else { SubMoney(hPrice); collocutor.AddMoney(hPrice); } } if (res) { mercenary.IsMercenary = true; int dist = MathHelper.Distance(Location, mercenary.Location); ExtPoint pt = GetNearestPlace(3, true); if ((dist > (int)Survey) && (!pt.IsEmpty)) { mercenary.CheckTile(false); mercenary.SetPos(pt.X, pt.Y); mercenary.CheckTile(true); } } }
private string GetPrefix(ItemKind kind) { string prefix = BaseLocale.GetStr(fEntry.Prefix); if (GlobalVars.nwrWin.LangExt.Equals("ru")) { Gender wordGender = Gender.gUndefined; switch (kind) { case ItemKind.ik_Potion: wordGender = Gender.gNeutral; break; case ItemKind.ik_Ring: wordGender = Gender.gNeutral; break; case ItemKind.ik_Wand: wordGender = Gender.gFemale; break; case ItemKind.ik_Scroll: wordGender = Gender.gMale; break; } prefix = Grammar.morphAdjective(prefix, Case.cNominative, Number.nSingle, wordGender); } return(prefix); }
protected override void DoPaintEvent(BaseScreen screen) { base.DoPaintEvent(screen); string nm_self = GlobalVars.nwrGame.Player.Name; string nm_col = fCollocutor.Name; screen.SetTextColor(Colors.Gold, true); ExtRect pakRt = fPackList.Bounds; // 2 ExtRect colRt = fColList.Bounds; // 0 int lcx = pakRt.Left + (pakRt.Width - CtlCommon.SmFont.GetTextWidth(nm_self)) / 2; int rcx = colRt.Left + (colRt.Width - CtlCommon.SmFont.GetTextWidth(nm_col)) / 2; int lcy = pakRt.Top - CtlCommon.SmFont.Height; int rcy = colRt.Top - CtlCommon.SmFont.Height; screen.DrawText(lcx, lcy, nm_self, 0); screen.DrawText(rcx, rcy, nm_col, 0); screen.DrawText(pakRt.Left, pakRt.Bottom + 3, BaseLocale.GetStr(RS.rs_Weight) + ": " + string.Format("{0:F2} / {1:F2}", new object[] { GlobalVars.nwrGame.Player.TotalWeight, GlobalVars.nwrGame.Player.MaxItemsWeight }), 0); screen.DrawText(colRt.Left, colRt.Bottom + 3, BaseLocale.GetStr(RS.rs_Weight) + ": " + string.Format("{0:F2} / {1:F2}", new object[] { fCollocutor.TotalWeight, fCollocutor.MaxItemsWeight }), 0); }
public string CheckSmithyTools() { string result = ""; ItemsList items = fPlayer.Items; if (items.FindByCLSID(GlobalVars.iid_Anvil) == null) { result += BaseLocale.GetStr(RS.rs_NoAnvil); } if (items.FindByCLSID(GlobalVars.iid_Tongs) == null) { if (result.CompareTo("") != 0) { result += ", "; } result += BaseLocale.GetStr(RS.rs_NoTongs); } if (items.FindByCLSID(GlobalVars.iid_Wand_Fire) == null) { if (result.CompareTo("") != 0) { result += ", "; } result += BaseLocale.GetStr(RS.rs_NoWand_Fire); } return(result); }
protected override void DoPaintEvent(BaseScreen screen) { base.DoPaintEvent(screen); Player player = GlobalVars.nwrGame.Player; int x = 14; // 3 int x2 = 222; // 4 int x3 = 431; // 5 CreatureState state = player.State; string ps = ""; if (state != CreatureState.Alive) { if (state == CreatureState.Undead) { ps = BaseLocale.GetStr(RS.rs_Undead); } } else { ps = BaseLocale.GetStr(RS.rs_Alive); } int mpr; if (player.MPMax == 0) { mpr = 0; } else { mpr = ((int)Math.Round(((float)player.MPCur / player.MPMax) * 100.0f)); } screen.SetTextColor(Colors.Gold, true); screen.DrawText(x, 8, player.Name, 0); screen.DrawText(x, 24, BaseLocale.GetStr(RS.rs_Race) + ": " + player.Race, 0); screen.DrawText(x, 40, BaseLocale.GetStr(RS.rs_Sex) + ": " + BaseLocale.GetStr(StaticData.dbSex[(int)player.Sex].NameRS), 0); screen.DrawText(x, 56, BaseLocale.GetStr(RS.rs_Level) + ": " + Convert.ToString(player.Level), 0); screen.DrawText(x, 72, BaseLocale.GetStr(RS.rs_Experience) + ": " + Convert.ToString(player.Experience), 0); screen.DrawText(x, 88, BaseLocale.GetStr(RS.rs_Morality) + ": " + player.GetMoralityName(), 0); screen.DrawText(x, 104, BaseLocale.GetStr(RS.rs_Perception) + ": " + Convert.ToString((int)player.Perception), 0); screen.DrawText(x2, 8, ps, 0); screen.DrawText(x2, 24, BaseLocale.GetStr(RS.rs_Constitution) + ": " + Convert.ToString(player.Constitution), 0); screen.DrawText(x2, 40, BaseLocale.GetStr(RS.rs_Strength) + ": " + Convert.ToString(player.Strength), 0); screen.DrawText(x2, 56, BaseLocale.GetStr(RS.rs_Speed) + ": " + Convert.ToString(player.Speed), 0); screen.DrawText(x2, 72, BaseLocale.GetStr(RS.rs_Luck) + ": " + Convert.ToString(player.Luck), 0); screen.DrawText(x2, 88, BaseLocale.GetStr(RS.rs_Armor) + ": " + Convert.ToString(player.ArmorClass), 0); screen.DrawText(x3, 24, BaseLocale.GetStr(RS.rs_HP) + ": " + Convert.ToString((int)(Math.Round(((float)player.HPCur / (float)player.HPMax_Renamed) * 100.0f))) + " %", 0); screen.DrawText(x3, 40, BaseLocale.GetStr(RS.rs_MP) + ": " + Convert.ToString(mpr) + " %", 0); screen.DrawText(x3, 56, BaseLocale.GetStr(RS.rs_Satiety) + ": " + Convert.ToString((int)(Math.Round(((float)player.Satiety / (float)Player.SatietyMax) * 100.0f))) + " %", 0); screen.DrawText(x3, 72, BaseLocale.GetStr(RS.rs_Damage) + ": " + Convert.ToString(player.DBMin) + "-" + Convert.ToString(player.DBMax), 0); screen.DrawText(x3, 88, BaseLocale.GetStr(RS.rs_Dexterity) + ": " + Convert.ToString((int)player.Dexterity), 0); screen.DrawText(14, 130, BaseLocale.GetStr(RS.rs_Diagnosis), 0); screen.DrawText(222, 130, BaseLocale.GetStr(RS.rs_Skills), 0); screen.DrawText(431, 130, BaseLocale.GetStr(RS.rs_Abilities), 0); }
public override void ChangeLang() { base.ChangeLang(); fKeyList.Hint = BaseLocale.GetStr(RS.rs_HKHint); UpdateKeyList(); }
protected override void DoPaintEvent(BaseScreen screen) { base.DoPaintEvent(screen); string s = BaseLocale.GetStr(RS.rs_AdventurerName); screen.SetTextColor(Colors.Gold, true); screen.DrawText((Width - CtlCommon.SmFont.GetTextWidth(s)) / 2, fEditBox.Top - CtlCommon.SmFont.Height, s, 0); s = BaseLocale.GetStr(RS.rs_Apprenticeship); screen.Font = CtlCommon.BgFont; screen.SetTextColor(Colors.Gold, true); screen.DrawText((Width - CtlCommon.BgFont.GetTextWidth(s)) / 2, 60, s, 0); screen.Font = CtlCommon.SmFont; for (var pa = SysCreature.sc_First; pa <= SysCreature.sc_Last; pa++) { SysCreatureRec sc = StaticData.dbSysCreatures[(int)pa]; s = BaseLocale.GetStr(sc.Name); ExtRect r = sc.ScrRect; BaseImage img = fImages[(int)pa]; screen.DrawImage(r.Left, r.Top, 0, 0, (int)img.Width, (int)img.Height, img, 255); screen.DrawText(r.Left + (r.Width - CtlCommon.SmFont.GetTextWidth(s)) / 2, r.Top - CtlCommon.SmFont.Height, s, 0); } }
private static string GetItemFullName(object itemObj) { float iWeight = 0.0f; MaterialKind iMaterial = MaterialKind.mk_None; string result = ""; if (itemObj is Item) { Item item = (Item)itemObj; iWeight = item.Weight; iMaterial = item.Material; result = item.Name; } else { if (itemObj is ItemEntry) { ItemEntry itemEntry = (ItemEntry)itemObj; iWeight = itemEntry.Weight; iMaterial = itemEntry.Material; result = itemEntry.Name; } } result = result + "\r\n" + BaseLocale.GetStr(RS.rs_Weight) + ": " + Convert.ToString((double)iWeight) + "; " + BaseLocale.GetStr(StaticData.dbMaterialKind[(int)iMaterial].Name); return(result); }
public override void TileProc(int aX, int aY, ref bool refContinue) { NWField f = Field; NWTile tile = (NWTile)f.GetTile(aX, aY); Step(aX, aY); if (f.IsBarrier(aX, aY)) { if (tile.ForeBase == PlaceID.pid_Tree) { tile.Foreground = PlaceID.pid_DeadTree; string nm = BaseLocale.GetStr(StaticData.dbPlaces[5].NameRS); GlobalVars.nwrWin.ShowText(Creature, BaseLocale.Format(RS.rs_TheXIsMelted, new object[] { nm })); } refContinue = false; } else { NWCreature c = (NWCreature)f.FindCreature(aX, aY); if (c != null && c.HasAffect(EffectID.eid_Flaying)) { c.ApplyDamage(RandomHelper.GetBoundedRnd(13, 36), DamageKind.dkRadiation, null, BaseLocale.Format(RS.rs_TheXIsMelted, new object[] { c.Name })); } } }
private void OnBtnSmithery(object sender) { int idx = fResList.SelIndex; if (idx < 0) { return; } int id; if (idx == 0) { id = GlobalVars.iid_Ingot; } else { id = ((ItemEntry)fResList.Items.GetItem(idx).Data).GUID; } int res = GlobalVars.nwrGame.Player.Craft.ForgeItem(fIngredients, id); if (res != Craft.RC_Ok) { if (res == Craft.RC_DifferentMetals) { // dummy } } else { fResList.Items.Add(BaseLocale.GetStr(RS.rs_MeltInIngot), null); UpdateView(); } }
private void ShowTopic(TopicEntry topic, bool isRoot) { if (topic == null) { AddText(BaseLocale.GetStr(RS.rs_NothingToSay)); } else { if (isRoot) { string qst = topic.Phrase; if (!string.IsNullOrEmpty(qst)) { AddText(qst); } } if (CheckScript(topic.Action) && !string.IsNullOrEmpty(topic.Answer)) { AddText(topic.Answer); for (int i = 0; i < topic.TopicsCount; i++) { TopicEntry subTopic = topic.GetTopic(i); if (CheckScript(subTopic.Condition)) { AddText("@" + subTopic.Phrase + "@ "); } } } } }
protected override void DoShowEvent() { base.DoShowEvent(); fServices.Items.BeginUpdate(); fServices.Items.Clear(); SentientBrain colBrain = (SentientBrain)fCollocutor.Brain; Services avail = colBrain.AvailableServices; for (var si = Service.ds_First; si <= Service.ds_Last; si++) { Service srv = (Service)(si); if (avail.Contains(srv)) { fServices.Items.Add(BaseLocale.GetStr(StaticData.dbDialogServices[(int)srv].NameRes), srv); } } fServices.Items.EndUpdate(); UpdateConversations(); GlobalVars.nwrWin.SetScriptVar("NPC", fCollocutor); GlobalVars.nwrWin.SetScriptVar("dialog", this); GlobalVars.nwrWin.DoEvent(EventID.event_DialogBegin, GlobalVars.nwrGame.Player, fCollocutor, null); }
public string GetMoralityName() { string result = ""; if (Morality >= 50) { result = BaseLocale.GetStr(RS.rs_MoralityHigh); } else { if (Morality < 50) { result = BaseLocale.GetStr(RS.rs_MoralityAverage); } else { if (Morality <= 0) { result = BaseLocale.GetStr(RS.rs_MoralityLow); } else { if (Morality <= -50) { result = BaseLocale.GetStr(RS.rs_MoralityAbsent); } } } } return(result); }
protected override void DoPaintEvent(BaseScreen screen) { base.DoPaintEvent(screen); int ax = 8; int ay = 8; screen.DrawImage(ax, ay, 0, 0, (int)fImage.Width, (int)fImage.Height, fImage, 255); screen.Font = CtlCommon.BgFont; screen.DrawText(ax + 40, ay + 25, BaseLocale.GetStr(RS.rs_WorldsTree), 0); screen.Font = CtlCommon.SmFont; int num = GlobalVars.nwrGame.LayersCount; for (int i = 0; i < num; i++) { NWLayer layer = GlobalVars.nwrGame.GetLayer(i); LayerEntry lre = layer.Entry; for (int y = 0; y < layer.H; y++) { for (int x = 0; x < layer.W; x++) { if (layer.GetField(x, y).Visited) { GlobalVars.nwrWin.Resources.DrawImage(screen, ax + lre.MSX + (x << 5), ay + lre.MSY + y * 30, lre.IconsIndex + (y * lre.W + x), 255); } } } } Player player = GlobalVars.nwrGame.Player; LayerEntry layerEntry = ((LayerEntry)GlobalVars.nwrDB.GetEntry(player.LayerID)); if (fMapCursor) { NWField fld = (NWField)player.CurrentMap; ExtPoint f = fld.Coords; GlobalVars.nwrWin.Resources.DrawImage(screen, ax + layerEntry.MSX + (f.X << 5), ay + layerEntry.MSY + f.Y * 30, StaticData.dbItfElements[(int)ItfElement.id_Cursor].ImageIndex, 255); } if (fMapHint.CompareTo("") != 0) { int tw = CtlCommon.SmFont.GetTextWidth(fMapHint); CtlCommon.SmFont.Color = Colors.Navy; //screen.drawText(ax + 304 + ((288 - tw) / 2), ay + 410, this.fMapHint, 0); screen.DrawText(ax + 58 + ((582 - tw) / 2), ay + 445, fMapHint, 0); } }
protected override void DoPaintEvent(BaseScreen screen) { try { base.DoPaintEvent(screen); string eq; if (fContainer == null) { eq = BaseLocale.GetStr(RS.rs_ItemsUsed); } else { eq = fContainer.Name; } Player player = GlobalVars.nwrGame.Player; int debt; if (Collocutor == null) { debt = 0; } else { debt = player.GetDebt(Collocutor.Name); } screen.SetTextColor(Colors.Gold, true); ExtRect pakRt = fPackList.Bounds; // 2 ExtRect eqpRt = fEquipList.Bounds; // 0 ExtRect outRt = fOutList.Bounds; // 1 int lcx = pakRt.Left + (pakRt.Width - CtlCommon.SmFont.GetTextWidth(BaseLocale.GetStr(RS.rs_Equipment))) / 2; int rcx = eqpRt.Left + (eqpRt.Width - CtlCommon.SmFont.GetTextWidth(eq)) / 2; int ocx = outRt.Left + (outRt.Width - CtlCommon.SmFont.GetTextWidth(BaseLocale.GetStr(RS.rs_Ground))) / 2; int lcy = pakRt.Top - CtlCommon.SmFont.Height; int rcy = eqpRt.Top - CtlCommon.SmFont.Height; int ocy = outRt.Top - CtlCommon.SmFont.Height; screen.DrawText(lcx, lcy, BaseLocale.GetStr(RS.rs_Equipment), 0); screen.DrawText(rcx, rcy, eq, 0); screen.DrawText(ocx, ocy, BaseLocale.GetStr(RS.rs_Ground), 0); screen.DrawText(outRt.Left, 368, BaseLocale.GetStr(RS.rs_Money) + ": " + Convert.ToString(player.Money), 0); screen.DrawText(outRt.Left, 386, BaseLocale.GetStr(RS.rs_Debt) + ": " + Convert.ToString(debt), 0); screen.DrawText(outRt.Left, 404, BaseLocale.GetStr(RS.rs_Weight) + ": " + string.Format("{0:F2} / {1:F2}", new object[] { player.TotalWeight, player.MaxItemsWeight }), 0); screen.DrawText(outRt.Left, 422, BaseLocale.GetStr(RS.rs_EquipTurns), 0); } catch (Exception ex) { Logger.Write("InventoryWindow.DoPaintTo(): " + ex.Message); } }
private void UpdateKeyList() { fKeyList.Items.Clear(); for (var ua = UserAction.uaFirst; ua <= UserAction.uaLast; ua++) { UserActionRec uAct = StaticData.dbUserActions[(int)ua]; LBItem item = fKeyList.Items.Add(BaseLocale.GetStr(uAct.NameRes), null); string s = BaseMainWindow.HotKeyToText(uAct.HotKey); item.SubItems.Add(s, null); } }
public Player(NWGameSpace space, object owner) : base(space, owner) { CLSID = GlobalVars.cid_Viking; Name = BaseLocale.GetStr(RS.rs_Unknown); Sex = CreatureSex.csMale; fMemory = new Memory(null); HalMap = new NWField(null, null, ExtPoint.Empty); fFaith = new Faith(this); fCraft = new Craft(this); InitBrain(); }
protected override void DoShowEvent() { base.DoShowEvent(); fDiagnosisCtl.Items.Clear(); fSkillsCtl.Items.Clear(); fAbilitiesCtl.Items.Clear(); for (var ab = AbilityID.Ab_First; ab <= AbilityID.Ab_Last; ab++) { AbilityRec abid = StaticData.dbAbilities[(int)ab]; int val = GlobalVars.nwrGame.Player.GetAbility(ab); if (val > 0) { fAbilitiesCtl.Items.Add(BaseLocale.GetStr(abid.Name) + " (" + Convert.ToString(val) + ")", null); } } for (var sk = SkillID.Sk_First; sk <= SkillID.Sk_Last; sk++) { int val = GlobalVars.nwrGame.Player.GetSkill(sk); if (val > 0) { fSkillsCtl.Items.Add(BaseLocale.GetStr(StaticData.dbSkills[(int)sk].Name) + " (" + Convert.ToString(val) + ")", null); } } int num = GlobalVars.nwrGame.Player.Effects.Count; for (int i = 0; i < num; i++) { fDiagnosisCtl.Items.Add(GlobalVars.nwrGame.Player.Effects.GetItem(i).Name, null); } StringList body_diag = new StringList(); try { GlobalVars.nwrGame.Player.DiagnosisBody(body_diag); int num2 = body_diag.Count; for (int i = 0; i < num2; i++) { fDiagnosisCtl.Items.Add(body_diag[i], null); } } finally { body_diag.Dispose(); } }
protected override void DoPaintEvent(BaseScreen screen) { base.DoPaintEvent(screen); screen.SetTextColor(Colors.Gold, true); ExtRect r1 = fFormationList.Bounds; int ml = r1.Left + (r1.Width - CtlCommon.SmFont.GetTextWidth(BaseLocale.GetStr(RS.rs_PartyFormation))) / 2; screen.DrawText(ml, 8, BaseLocale.GetStr(RS.rs_PartyFormation), 0); ExtRect r2 = fMercenariesList.Bounds; ml = r2.Left + (r2.Width - CtlCommon.SmFont.GetTextWidth(BaseLocale.GetStr(RS.rs_Mercenaries))) / 2; screen.DrawText(ml, r1.Bottom + 2, BaseLocale.GetStr(RS.rs_Mercenaries), 0); }
public override void TileProc(int aX, int aY, ref bool aContinue) { AuxUtils.ExStub("The ray shoots into space, a futile message to other worlds."); AuxUtils.ExStub("Pebbles fall on your head."); AuxUtils.ExStub("Pelted by a pebble"); AuxUtils.ExStub("You bring the ceiling down."); AuxUtils.ExStub("You dig a pit."); AuxUtils.ExStub("You create a hole in Bifrost! "); AuxUtils.ExStub("Whoosh! "); Step(aX, aY); BaseTile tile = Field.GetTile(aX, aY); if (tile == null) { aContinue = false; return; } int fgp = tile.ForeBase; switch (fgp) { case PlaceID.pid_Mountain: case PlaceID.pid_Vulcan: aContinue = false; break; case PlaceID.pid_Tree: GlobalVars.nwrWin.ShowText(Creature, BaseLocale.GetStr(RS.rs_ThereAreNowHoles)); break; case PlaceID.pid_Vortex: case PlaceID.pid_StairsDown: case PlaceID.pid_StairsUp: case PlaceID.pid_GStairsDown: case PlaceID.pid_GStairsUp: case PlaceID.pid_HoleDown: case PlaceID.pid_HoleUp: break; default: tile.Foreground = PlaceID.pid_Undefined; break; } }
protected override void DoPaintEvent(BaseScreen screen) { base.DoPaintEvent(screen); CtlCommon.SmFont.Color = Colors.Gold; CtlCommon.BgFont.Color = Colors.Gold; screen.Font = CtlCommon.BgFont; switch (FilesMode) { case FWMODE_LOAD: screen.DrawText(30, 22, BaseLocale.GetStr(RS.rs_GameLoad), 0); break; case FWMODE_SAVE: screen.DrawText(30, 22, BaseLocale.GetStr(RS.rs_GameSave), 0); break; } screen.Font = CtlCommon.SmFont; for (int i = 0; i < MaxList; i++) { ExtRect rd = GetFileOpRect(i, MI_FILEDELETE); GlobalVars.nwrWin.Resources.DrawImage(screen, rd.Left, rd.Top, StaticData.dbItfElements[(int)ItfElement.id_FileDelete].ImageIndex, 255); ExtRect rn = GetFileOpRect(i, MI_FILENUM); GlobalVars.nwrWin.Resources.DrawImage(screen, rn.Left, rn.Top, StaticData.dbItfElements[(int)ItfElement.id_FileNum].ImageIndex, 255); int col = Colors.Navy; screen.SetTextColor(col, true); screen.DrawText(rd.Left + 34, rd.Top + 2, Convert.ToString(i), 0); screen.SetTextColor(Colors.Gold, true); screen.DrawText(rd.Left + 54, rd.Top + 2, fFiles[i].PlayerName, 0); screen.DrawText(rd.Left + 200, rd.Top + 2, fFiles[i].LandName, 0); string time; if (fFiles[i].SaveTime == new DateTime()) { time = "(?)"; } else { time = "(" + fFiles[i].SaveTime.ToString("yyyy.MM.dd hh:mm:ss") + ")"; } screen.DrawText(rd.Left + 380, rd.Top + 2, time, 0); } }
protected override void DoPaintEvent(BaseScreen screen) { base.DoPaintEvent(screen); CtlCommon.SmFont.Color = Colors.Gold; ExtRect pakRt = fPackList.Bounds; // 8 ExtRect ingRt = fIngredientsList.Bounds; // 6 ExtRect resRt = fResList.Bounds; // 7 int lcx = pakRt.Left + (pakRt.Width - CtlCommon.SmFont.GetTextWidth(BaseLocale.GetStr(RS.rs_Ingredients))) / 2; int rcx = ingRt.Left + (ingRt.Width - CtlCommon.SmFont.GetTextWidth(BaseLocale.GetStr(RS.rs_ItemsChoosed))) / 2; int ocx = resRt.Left + (resRt.Width - CtlCommon.SmFont.GetTextWidth(BaseLocale.GetStr(RS.rs_Result))) / 2; screen.DrawText(lcx, 9, BaseLocale.GetStr(RS.rs_Ingredients), 0); screen.DrawText(rcx, 9, BaseLocale.GetStr(RS.rs_ItemsChoosed), 0); screen.DrawText(ocx, 206, BaseLocale.GetStr(RS.rs_Result), 0); }
private void UpdateList() { Player player = new Player(null, null); try { for (int i = 0; i < MaxList; i++) { string fn = NWGameSpace.GetSaveFile(NWGameSpace.SAVEFILE_PLAYER, i); fFiles[i] = new GameFile(); fFiles[i].Exist = File.Exists(fn); if (fFiles[i].Exist) { fFiles[i].SaveTime = File.GetLastWriteTime(fn); try { NWGameSpace.LoadPlayer(i, player); fFiles[i].PlayerName = player.Name; int fx = player.Field.X; int fy = player.Field.Y; LayerEntry layer = (LayerEntry)GlobalVars.nwrDB.GetEntry(player.LayerID); string landSign = layer.GetFieldEntry(fx, fy).LandSign; LandEntry land = (LandEntry)GlobalVars.nwrDB.FindEntryBySign(landSign); fFiles[i].LandName = land.Name; } catch (Exception ex) { Logger.Write("FilesWindow.refreshList.PlayerLoad(" + fn + "): " + ex.Message); fFiles[i].PlayerName = "<error>"; fFiles[i].LandName = "<error>"; } } else { fFiles[i].PlayerName = BaseLocale.GetStr(RS.rs_PlayerUnknown); fFiles[i].LandName = "-"; fFiles[i].SaveTime = new DateTime(); } } } finally { player.Dispose(); } }
// FIXME: change total other functions for compatibiliy with this private void ChangeTile(int x, int y, ushort tileID, bool fg) { BaseTile tile = GetTile(x, y); if (tile != null) { if (!fg) { tile.Background = tileID; } else { tile.Foreground = tileID; } switch (tileID) { case PlaceID.pid_Lava: { if (tile.ForeBase == PlaceID.pid_Tree) { tile.Foreground = PlaceID.pid_DeadTree; GlobalVars.nwrWin.ShowText(GlobalVars.nwrWin, BaseLocale.GetStr(RS.rs_TreeBursts)); } // ALERT: fixme, where resistances?!! NWCreature cr = (NWCreature)FindCreature(x, y); if (cr != null) { if (cr.IsPlayer) { GlobalVars.nwrWin.ShowText(cr, BaseLocale.GetStr(RS.rs_LavaEncasesYou)); cr.Death(BaseLocale.GetStr(RS.rs_EncasedInVolcanicRock), null); } else { cr.Death(BaseLocale.GetStr(RS.rs_XIsConsumedByLava), null); } } break; } } } }
protected override void DoShowEvent() { base.DoShowEvent(); fFormationList.Items.BeginUpdate(); fFormationList.Items.Clear(); for (var pf = PartyFormation.pfFirst; pf <= PartyFormation.pfLast; pf++) { fFormationList.Items.Add(BaseLocale.GetStr(LeaderBrain.PartyFormationsRS[(int)pf]), null); } fFormationList.Items.EndUpdate(); int idx = (int)((LeaderBrain)GlobalVars.nwrGame.Player.Brain).Formation; fFormationList.SelIndex = idx; fFormationList.Items.GetItem(idx).Checked = true; UpdateView(); }
public override void LeavePlace(NWField field, NWTile tile) { try { base.LeavePlace(field, tile); if (field.LandID == GlobalVars.Land_Crossroads) { int fg = tile.ForeBase; if (fg == PlaceID.pid_cr_Disk || fg == PlaceID.pid_cr_Disk_Pressed) { tile.Foreground = PlaceID.pid_Undefined; GlobalVars.nwrWin.ShowText(this, BaseLocale.GetStr(RS.rs_DiskFalls)); } } } catch (Exception ex) { Logger.Write("Player.leavePlace(): " + ex.Message); throw ex; } }
public string GetPlaceName(int x, int y) { string result = ""; NWTile tile = (NWTile)base.GetTile(x, y); if (tile != null && !tile.EmptyStates) { int bg = tile.BackBase; int fg = tile.ForeBase; if (bg != PlaceID.pid_Undefined) { result = BaseLocale.GetStr(StaticData.dbPlaces[bg].NameRS); if (bg == PlaceID.pid_Liquid) { result = result + " (" + GlobalVars.nwrDB.GetEntry(tile.Lake_LiquidID).Name + ")"; } } if (fg != PlaceID.pid_Undefined) { if (IsTrap(x, y) && tile.Trap_Discovered) { result = result + ", " + BaseLocale.GetStr(StaticData.dbPlaces[fg].NameRS); } else { Gate gate = FindGate(x, y); if (gate != null) { result = result + ", " + gate.Name; } else { result = result + ", " + BaseLocale.GetStr(StaticData.dbPlaces[fg].NameRS); } } } } return(result); }
private void ApplyLightEffect() { int rad = (int)LightRadius; if (rad > 0) { CreaturesList crList = CurrentField.Creatures; int num = crList.Count; for (int i = 0; i < num; i++) { NWCreature cr = crList.GetItem(i); if (MathHelper.Distance(Location, cr.Location) <= rad && cr.Entry.Sign.Equals("Phausq")) { cr.Death(BaseLocale.GetStr(RS.rs_MonsterDestroyedByLight), null); } } // TODO: message for player: \"The light burns you!\" } }
public override void TileProc(int aX, int aY, ref bool aContinue) { NWCreature self = Creature; NWField f = Field; if (f.IsBarrier(aX, aY)) { aContinue = false; } else { NWCreature c = (NWCreature)f.FindCreature(aX, aY); if (c != null) { c.ApplyDamage(RandomHelper.GetBoundedRnd(9, 17), DamageKind.dkPhysical, null, ""); } else { self.CheckTile(false); self.SetPos(aX, aY); self.CheckTile(true); Effect ef = self.Effects.FindEffectByID(EffectID.eid_PitTrap); if (ef != null) { self.Effects.Remove(ef); } else { ef = self.Effects.FindEffectByID(EffectID.eid_Quicksand); if (ef != null) { self.Effects.Remove(ef); } } GlobalVars.nwrWin.ShowText(self, BaseLocale.GetStr(RS.rs_YouPullForward)); } aContinue = false; } }