Example #1
0
        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);
                        }
                    }
                }
            }
        }
Example #2
0
        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 }));
                }
            }
        }
Example #3
0
        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 tmp = BaseLocale.GetStr(StaticData.dbPlaces[5].NameRS);
                    GlobalVars.nwrWin.ShowText(Creature, BaseLocale.Format(RS.rs_TheXIsFrozen, new object[] { tmp }));
                }
                refContinue = false;
            }
            else
            {
                NWCreature c = (NWCreature)f.FindCreature(aX, aY);
                if (c != null && c.HasAffect(EffectID.eid_Ice))
                {
                    c.AddEffect(EffectID.eid_Ice, ItemState.is_Normal, EffectAction.ea_Persistent, false, BaseLocale.GetStr(RS.rs_YouAreFrozen));
                    Effect e = c.Effects.FindEffectByID(EffectID.eid_Ice);
                    if (e != null && e.Magnitude >= 30)
                    {
                        string tmp;
                        if (c.IsPlayer)
                        {
                            tmp = BaseLocale.GetStr(RS.rs_EncasedInIce);
                        }
                        else
                        {
                            tmp = BaseLocale.Format(RS.rs_TheXIsFrozen, new object[] { c.Name });
                        }
                        c.Death(tmp, null);
                    }
                }
            }
        }
Example #4
0
        public override void Execute()
        {
            NWCreature self     = (NWCreature)Self;
            ExtPoint   playerPt = self.Space.Player.Location;

            if (MathHelper.Distance(playerPt, self.Location) == 1)
            {
                int    idx = RandomHelper.GetBoundedRnd(RS.rs_Diary_First, RS.rs_Diary_Last);
                string s   = BaseLocale.Format(RS.rs_RavenSaid, BaseLocale.GetStr(idx));
                GlobalVars.nwrWin.ShowText(self, s, new LogFeatures(LogFeatures.lfDialog));

                self.State = CreatureState.Dead;
                IsComplete = true;
            }
            else
            {
                ExtPoint next = self.GetStep(playerPt);
                if (!next.IsEmpty)
                {
                    Brain.StepTo(next.X, next.Y);
                }
            }
        }
        private void OnSkillsSelect(object Sender, MouseButton Button, LBItem Item)
        {
            if (Button == MouseButton.mbRight)
            {
                int idx = (int)Item.Data;
                switch (fMode)
                {
                case SWM_SKILLS:
                {
                    SkillID sk = (SkillID)(idx);
                    if (sk != SkillID.Sk_Alchemy)
                    {
                        if (sk != SkillID.Sk_Ironworking)
                        {
                            if (sk != SkillID.Sk_Spellcasting)
                            {
                                Hide();
                                GlobalVars.nwrGame.DoPlayerAction(CreatureAction.caSkillUse, idx);
                            }
                            else
                            {
                                Mode = SWM_SPELLS;
                            }
                        }
                        else
                        {
                            string ts = GlobalVars.nwrGame.Player.Craft.CheckSmithyTools();
                            if (ts.CompareTo("") != 0)
                            {
                                GlobalVars.nwrWin.ShowText(GlobalVars.nwrWin, BaseLocale.Format(RS.rs_NoInstruments, new object[] { ts }));
                            }
                            else
                            {
                                Hide();
                                GlobalVars.nwrWin.ShowSmithyWin();
                            }
                        }
                    }
                    else
                    {
                        Hide();
                        GlobalVars.nwrWin.ShowAlchemyWin();
                    }
                    break;
                }

                case SWM_SPELLS:
                    Hide();
                    GlobalVars.nwrGame.DoPlayerAction(CreatureAction.caSpellUse, idx);
                    break;

                case SWM_TILES:
                    Hide();
                    GlobalVars.nwrWin.TargetData.Ext.SetParam(EffectParams.ep_TileID, idx);
                    GlobalVars.nwrWin.UseTarget();
                    break;

                case SWM_LANDS:
                    Hide();
                    GlobalVars.nwrWin.TargetData.Ext.SetParam(EffectParams.ep_Land, idx);
                    GlobalVars.nwrWin.UseTarget();
                    break;

                case SWM_SCROLLS:
                    Hide();
                    GlobalVars.nwrWin.TargetData.Ext.SetParam(EffectParams.ep_ScrollID, idx);
                    GlobalVars.nwrWin.UseTarget();
                    break;

                case SWM_GODS:
                    Hide();
                    GlobalVars.nwrWin.TargetData.Ext.SetParam(EffectParams.ep_GodID, idx);
                    GlobalVars.nwrWin.UseTarget();
                    break;
                }
            }
        }