Наследование: Ammunition
Пример #1
0
        public static void ShowList()
        {
            Console.Clear();

            UpdateList();

            int count = 0;

            foreach (Achievement ach in achList)
            {
                if (ach.Checker())
                {
                    count++;
                    RPG.Dialogue("\n" + ach.Title, true, ach.Color);
                    Console.WriteLine(ach.Description);
                }
                else
                {
                    RPG.Dialogue("\n" + ach.Title, true, ConsoleColor.Red);
                }
            }

            Console.WriteLine("\n" + count + "/" + achList.Count + " достижений получено.");

            Console.ReadKey();
        }
Пример #2
0
        static void Main(string[] args)
        {
            Game game;          // Menggunakan Abstract Class

            game = new FPS();
            game.Kategori();

            Console.WriteLine();
            game = new RPG();
            game.Kategori();

            Console.WriteLine();
            game = new RTS();
            game.Kategori();



            /*IGame game;       // Menggunakan Abstract Class
             * game = new FPS();
             * game.Kategori();
             *
             * Console.WriteLine();
             * game = new RPG();
             * game.Kategori();
             *
             * Console.WriteLine();
             * game = new RTS();
             * game.Kategori()*/

            Console.ReadKey();
        }
Пример #3
0
        static public void Init(Monster[] _monsters, bool _boss = false)
        {
            Reset();

            boss     = _boss;
            monsters = _monsters;
            amount   = monsters.Length;

            if (amount == 1)
            {
                RPG.Dialogue($"{GetTypeName(monsters[0].Type)} {monsters[0].Name}!"
                             + $"\nУ него: {monsters[0].HP} HP"
                             + $"\nи {monsters[0].Damage} Урона.",
                             false, ConsoleColor.Red);           // Вывод строки красного цвета о начале схватки
            }
            else
            {
                RPG.Dialogue("Монстры!");
                for (int i = 0; i < amount; i++)
                {
                    RPG.Dialogue($"\n{i}: {GetTypeName(monsters[i].Type)} {monsters[i].Name}!"
                                 + $"\nУ него: {monsters[i].HP} HP"
                                 + $"\nи {monsters[i].Damage} Урона.",
                                 false, ConsoleColor.Red);
                }
            }
            MonsterFight();
        }
Пример #4
0
        private static void GetHigh(Skill skill)
        {
            var rng = Random.Range(0, 100);

            SkillEventHandler.Do(x =>
            {
                Function.Call(Hash.SET_TIME_SCALE, rng < 80 ? 0.4f : 0.2f);
                Function.Call(Hash.SET_TIMECYCLE_MODIFIER, rng < 80 ? "phone_cam6" : "phone_cam7");
                var slowTime = skill.GetIntParam("Slow Time");
                if (rng > 80)
                {
                    RPG.Notify(Notification.Danger("Unlucky, what a hit! HP Lost"));
                    if (Game.Player.Character.Health > 10)
                    {
                        Game.Player.Character.Health -= 10;
                    }
                    else
                    {
                        Game.Player.Character.Health = 5;
                    }
                }
                SkillEventHandler.Wait(slowTime);
                Function.Call(Hash.SET_TIME_SCALE, 1f);
                Function.Call(Hash.SET_TIMECYCLE_MODIFIER, "");
            });
        }
Пример #5
0
        public void Unlock()
        {
            if (RPG.PlayerData.SkillExp >= PointsToUnlock)
            {
                RPG.PlayerData.SkillExp -= PointsToUnlock;
                Unlocked = true;
                RPG.GetPopup <SkillUnlocked>().Show(this);
                CoolDownTimer.Current = CoolDownTimer.CoolDownMsTime;
                var slots = RPG.SkillHandler.Slots;

                if (slots[2].IsEmpty)
                {
                    slots[2].Set(Name, true);
                }
                else
                {
                    for (int i = 0; i < slots.Length; i++)
                    {
                        var slot = slots[i];
                        if (slot.IsEmpty)
                        {
                            slot.Set(Name, true);
                            break;
                        }
                    }
                }
            }
        }
Пример #6
0
        public static void ShowMenu()
        {
            Console.Clear();

            if (index == 0)
            {
                RPG.Dialogue($"[{newfile}]", true);
            }
            else
            {
                RPG.Dialogue($"{newfile}", true);
            }

            for (int i = 1; i < Player.subDirs.Length + 1; i++)
            {
                if (i == index)
                {
                    RPG.Dialogue($"[{Player.subDirs[i - 1]}]", true);
                }
                else
                {
                    RPG.Dialogue($" {Player.subDirs[i - 1]} ", true);
                }
            }

            Console.WriteLine("W,S - Переместить выделение, E - Выбрать пункт меню, Q - Выйти");

            MenuControls();
        }
Пример #7
0
        public static void Migrate(string dataVersion, string version)
        {
            switch (dataVersion)
            {
            case "0.1":
                Migrate_v010_To_v014();
                break;

            case "0.1.1":
            case "0.1.2":
            case "0.1.3":
            case "0.1.4":
            case "0.1.5":
            case "0.1.6":
            case "0.1.7":
            case "0.1.8":
            case "0.1.9":
            case "0.1.10":
            case "0.1.11":
            case "0.1.12":
                FixTutorial();
                FixWeapons();
                break;
            }

            if (dataVersion != version)
            {
                RPG.GetPopup <PatchNotes>().Show();
            }

            RPG.PlayerData.Version = RPG.Version;
        }
Пример #8
0
 public void Unlock()
 {
     if (RPG.PlayerData.SkillExp >= PointsToUnlock && RPG.PlayerData.Level >= LevelToUnlock)
     {
         RPG.PlayerData.SkillExp -= PointsToUnlock;
         Unlocked = true;
         RPG.GetPopup <WeaponUnlocked>().Show(this);
         EventHandler.Do(o =>
         {
             Game.Player.Character.Weapons.Give(WeaponHash, 0, false, false);
             Script.Wait(150);
             Game.Player.Character.Weapons[WeaponHash].Ammo = 100;
         });
     }
     else
     {
         if (RPG.PlayerData.SkillExp < PointsToUnlock)
         {
             RPG.Notify("Not enough SP");
         }
         else if (RPG.PlayerData.Level < LevelToUnlock)
         {
             RPG.Notify("Requires Level " + LevelToUnlock);
         }
     }
 }
Пример #9
0
        protected override void OnPopup(UIContainer popup, object[] args)
        {
            RPG.GetPopup <QuestStarted>().Hide();

            var quest = (Quest)args[0];

            popup.Size = new Size(UI.WIDTH, 115);

            var extra = quest.AdditionalRewards.Count;

            if (extra > 0)
            {
                popup.Size = new Size(popup.Size.Width, popup.Size.Height + extra * 20);
            }

            popup.Position = new Point(0, UI.HEIGHT / 2 - 50);

            var completedText = quest.IsContract ? "Contract complete" : "Quest complete";
            var color         = quest.IsContract ? Color.FromArgb(150, 180, 180, 180) : Color.FromArgb(150, 255, 180, 0);

            popup.Color = color;

            popup.Items.Add(new UIText(completedText, new Point(UI.WIDTH / 2, 0), 0.5f, Color.White, 0, true));
            popup.Items.Add(new UIText("- " + quest.Name + " -", new Point(UI.WIDTH / 2, 15), 1.4f, Color.White, 0, true));
            popup.Items.Add(new UIText("- " + quest.GetBasicRewardString() + " -", new Point(UI.WIDTH / 2, 80), 0.25f, Color.White, 0, true));

            var point = 110;

            for (int index = 0; index < quest.AdditionalRewards.Count; index++)
            {
                var reward = quest.AdditionalRewards[index];
                popup.Items.Add(new UIText("- " + reward.GetRewardString() + " -", new Point(UI.WIDTH / 2, point + (index * 15)), 0.24f, Color.White, 0, true));
            }
        }
Пример #10
0
        static void Main(string[] args)
        {
            Console.Title = "WELCOME TO SHIPMENT";
            Console.WriteLine("May you survive the map...\n");
            int score = 0;

            Weapon fireShotgun = new Weapon(1, 15, "Fire Shotgun", 5, false);
            Player player      = new Player("Paw KC", 50, 5, 50, 50, Name.AlexMason, fireShotgun);

            bool exit = false;

            do
            {
                Console.WriteLine(GetMap());

                RPG r1 = new RPG();
                RPG r2 = new RPG("Game Wrecker", 40, 40, 50, 15, 1, 10, "The guys have RPG's, everyone stay in spawn...", true);

                RPG[] rpgs = { r1, r2, r2, r1, r1 };

                Random rand    = new Random();
                int    randNbr = rand.Next(rpgs.Length);
                RPG    rpg     = rpgs[randNbr];

                Console.WriteLine("\nOn the map: " + rpg.Name);
            } while (!exit);

            Console.WriteLine("You've defeated " + score + " enemy" + ((score == 1)? "." : "s."));
        } //end Main()
Пример #11
0
        public static void ShowMenu()
        {
            Console.Clear();

            Console.WriteLine($"Текущее оружие: {Player.Inventory[0].GetName()} ({Player.Inventory[0].LVL} УР)" +
                              $"\n{Player.Inventory[0].Description}" +
                              $"\nУрон: {Player.Inventory[0].baseDamage} АТК");

            Console.WriteLine($"\nТекущая броня: {Player.Inventory[1].GetName()} ({Player.Inventory[1].LVL} УР)" +
                              $"\n{Player.Inventory[1].Description}" +
                              $"\nЗащита: {Player.Inventory[1].Defence} ЗАЩ");

            Console.WriteLine($"\nТекущий предмет: {Player.Inventory[2].GetName()}" +
                              $"\n{Player.Inventory[2].Description}");

            Console.WriteLine("\n");

            for (int i = 0; i < Player.Passive_Inventory.Length; i++)
            {
                if (i == index)
                {
                    RPG.Dialogue($"[{Player.Passive_Inventory[i].GetName()}] - {Player.Passive_Inventory[i].Description} (УР: {Player.Passive_Inventory[i].LVL})",
                                 true, Player.Passive_Inventory[i].Colour);
                }
                else
                {
                    RPG.Dialogue($" {Player.Passive_Inventory[i].GetName()} ", true, Player.Passive_Inventory[i].Colour);
                }
            }

            Console.WriteLine("W,S - Выбрать предмет, E - Экипировать предмет, Q - Выйти");

            MenuControls();
        }
Пример #12
0
        public void RPGToevoegenEnVervolgensVerwijderen()
        {
            var options = DBContextGenerator();

            //Arrange
            using (var context = new RPGContext(options))
            {
                RPGRepositoryEFDB RPGRepo = new RPGRepositoryEFDB(context);

                RPG RPG = new RPG {
                    RPGSysteem = RPGSystemen.MistbornAdventureGame
                };
                //Act
                RPGRepo.Insert(new RPG());
            }

            using (var context = new RPGContext(options))
            {
                RPGRepositoryEFDB RPGRepo = new RPGRepositoryEFDB(context);

                List <RPG> RPGs  = (List <RPG>)RPGRepo.FindBy(t => t.RPGSysteem == RPGSystemen.MistbornAdventureGame);
                List <RPG> RPGs2 = (List <RPG>)RPGRepo.FindAll();
                //Assert
                Assert.AreEqual(0, RPGs.Count());
            }
        }
Пример #13
0
 public void LoadLevel(string levelName, bool updatePlayerLevel, bool saveCurrentPlayer, WorldArea worldArea = null, Location location = null)
 {
     if (RPG.LoadLevel(levelName, updatePlayerLevel, saveCurrentPlayer, worldArea, location))
     {
         GetObject.AudioPlayer.StartAudio();
         InitialiseLevel();
     }
 }
Пример #14
0
    // 250 DPS. Rockets deal 100 + splash damage.
    public override Gun spawn(float rarity)
    {
        RPG r = new RPG();

        r.capacity   = 1;
        r.reloadtime = 1;
        return(r);
    }
Пример #15
0
        public static void LetsGo()
        {
            #region Install Error Manager, and the global engine!
            NALACore.Core.Window.Title = SBubble.Title;
            #endregion


            #region The base MonoGame stuff
            SBubble.AddInit(delegate(string v) { SBubble.State(v).DoString($"function {FlowManager.NOTHING}() end", "Alright move along, nothing to see here!"); });
            SBubble.AddInit(BubbleConsole.StateInit);
            SBubble.AddInit(BubbleGraphics.InitGraphics);
            SBubble.AddInit(Bubble_Audio.Init);
            SBubble.AddInit(APIFlow.Init);
            SBubble.AddInit(BubbleSuperGlobal.Init);
            SBubble.AddInit(Bubble_Input.Init);
            SBubble.AddInit(Bubble_Save.Init);
            SBubble.AddInit(Bubble_Conf.Init);
            SBubble.AddInit(Bubble_GameJolt.Init);
            SBubble.AddInit(BubbleTimer.Init);
            SBubble.AddInit(Bubble_Swap.Init);
            #endregion

            #region Extras to use in savegames
            Bubble_Save.SaveXtra["RPGPARTY"] = delegate(UseJCR6.TJCRCreate j, string dir) {
                RPG.RPGSave(j, $"XTRA/{dir}");
            };
            Bubble_Save.LoadXtra["RPGPARTY"] = delegate(UseJCR6.TJCRDIR j, string dir) {
                RPG.RPGLoad(j, $"XTRA/{dir}");
                return(true);
            };
            Bubble_Save.SaveXtra["SWAP"] = Bubble_Swap.SwapSave;
            Bubble_Save.LoadXtra["SWAP"] = Bubble_Swap.SwapLoad;
            #endregion

            #region The stuff needed for NALA in particular
            // Own APIs for NIL and Lua
            //SBubble.AddInit(MapScriptAPI.API_Init);
            SBubble.AddInit(RPG_API.Init);

            // Kthura Init
            Kthura.SetDefaultTextureJCR(SBubble.JCR);                   // Textures are all in the same project
            KthuraDraw.DrawDriver           = new KthuraDrawMonoGame(); // Tell Kthura to use the MonoGame Driver to display the map
            KthuraDrawMonoGame.CrashOnNoTex = delegate(string msg) { SBubble.MyError("Kthura Texture Error", msg, ""); };

            // SBubble Kthura API
            SBubble.AddInit(KthuraBubble.KthuraBubble.Init);
            SBubble.AddInit(KthuraBubble.KthBlockAPI.Init);
            SBubble.AddInit(KthuraBubble.KthuraAbyssGenerator.Init);

            // TODO: API for TeddyBear
            // TODO: API for Swap Data Manager
            // TODO: API for RPGStat
            RPG.JCRSTORAGE = "lzma";
            #endregion

            // Start init script
            FlowManager.StartInitFlow();
        }
Пример #16
0
        static void MenuControls()
        {
            Item buffer;

            ConsoleKey key = Console.ReadKey().Key;

            switch (key)
            {
            case ConsoleKey.E:
                buffer = Player.Passive_Inventory[index];

                switch (Player.Passive_Inventory[index].IType)
                {
                case Item.Type.Armour:
                    Player.Passive_Inventory[index] = Player.Inventory[1];
                    Player.Inventory[1]             = buffer;
                    break;

                case Item.Type.Weapon:
                    Player.Passive_Inventory[index] = Player.Inventory[0];
                    Player.Inventory[0]             = buffer;
                    break;

                case Item.Type.Item:
                    Player.Passive_Inventory[index] = Player.Inventory[2];
                    Player.Inventory[2]             = buffer;
                    break;

                default:
                    RPG.Dialogue("Нельзя экипировать.");
                    break;
                }
                goto default;

            case ConsoleKey.Q:
                break;

            case ConsoleKey.S:
                if (index < Player.Passive_Inventory.Length - 1)
                {
                    index++;
                }
                goto default;

            case ConsoleKey.W:
                if (index > 0)
                {
                    index--;
                }
                goto default;

            default:
                ShowMenu();
                break;
            }
        }
Пример #17
0
 // END CUT HERE
 // BEGIN CUT HERE
 public static void Main()
 {
     try {
     RPG ___test = new RPG();
     ___test.run_test(-1);
     } catch(Exception e) {
     //Console.WriteLine(e.StackTrace);
     Console.WriteLine(e.ToString());
     }
 }
Пример #18
0
// END CUT HERE
// BEGIN CUT HERE
    public static void Main()
    {
        try {
            RPG ___test = new RPG();
            ___test.run_test(-1);
        } catch (Exception e) {
//Console.WriteLine(e.StackTrace);
            Console.WriteLine(e.ToString());
        }
    }
Пример #19
0
        public override void Show(params object[] args)
        {
            var qc = RPG.GetPopup <QuestStarted>();

            while (qc.Showing)
            {
                Wait(0);
            }
            base.Show(args);
        }
Пример #20
0
 void OnTriggerEnter(Collider other)
 {
     if (other.tag == "Player")
     {
         if (flagPrereq == "" || RPG.GetBool(flagPrereq))  // the prequisit is done
         {
             RPG.SetFlag(flagName, flagValue);
             Destroy(this);
         }
     }
 }
Пример #21
0
 void OnTriggerEnter(Collider other)
 {
     if (other.tag == "Player")
     {
         RPG.KillPlayer(message);             // kill them
     }
     if (other.tag == "Enemy")
     {
         Destroy(other.gameObject);  // kill it
     }
 }
Пример #22
0
        public static void UseSkill(Skill skill)
        {
            if (!skill.Unlocked)
            {
                RPG.Notify(Notification.Alert("You have not unlocked this skill."));
                return;
            }

            skill.Use(skill);

            //Cooldowns, mana use etc
        }
Пример #23
0
 public void Use(Skill obj)
 {
     if (CoolDownTimer.Usable)
     {
         SkillRepository.GetAction(Name).Invoke(obj);
         CoolDownTimer.Reset();
     }
     else
     {
         var secs = CoolDownTimer.SecondsRemaining.ToString("0.0");
         RPG.Notify("cannot use " + Name + " for " + secs + "s");
     }
 }
Пример #24
0
        public void Start(bool withPopup = true)
        {
            SetupConditions();

            QuestRepository.GetStartAction(Name).Invoke(this);

            if (withPopup)
            {
                RPG.GetPopup <QuestStarted>().Show(this);
            }

            InProgress = true;
        }
Пример #25
0
    public void addGun(int gunType)
    {
        if (PlayerData.Instance.gunList.Contains(gunType) == false)
        {
            PlayerData.Instance.addGun(gunType);
        }

        switch (gunType)
        {
        case (int)GunPickup.GunType.Pistol:
            Pistol pistol = new Pistol(this, firePoint, hitEffects[0], gunSounds[0], GetComponent <LineRenderer>(), gunAnimControllers[0], ejected_shell, ejectPt, gunicons[0]);
            gunList.Add(pistol);
            break;

        case (int)GunPickup.GunType.RPG:
            RPG rpg = new RPG(this, firePoint, hitEffects[0], bulletObjs[1], gunSounds[1], gunAnimControllers[2], gunicons[2]);
            gunList.Add(rpg);

            break;

        case (int)GunPickup.GunType.Shotgun:
            Shotgun shotgun = new Shotgun(this, firePoint, hitEffects[0], gunSounds[1], bulletObjs[3], gunAnimControllers[1], gunicons[1]);
            gunList.Add(shotgun);
            break;

        case (int)GunPickup.GunType.DualPistols:
            DualPistols dualPistols = new DualPistols(this, firePoint, DPLeftFirePoint, hitEffects[0], gunSounds[0], GetComponent <LineRenderer>(), dualPistolsLeftFirePoint, gunAnimControllers[3], ejected_shell, ejectPt, gunicons[3]);
            gunList.Add(dualPistols);
            break;

        case (int)GunPickup.GunType.RailGun:
            RailGun railgun = new RailGun(this, firePoint, hitEffects[0], bulletObjs[4], gunSounds[4], gunAnimControllers[4], gunicons[4]);
            gunList.Add(railgun);
            break;

        case (int)GunPickup.GunType.TVGun:
            TVGun tvgun = new TVGun(this, firePoint, hitEffects[0], bulletObjs[2], gunSounds[0], gunAnimControllers[5], gunicons[5]);
            gunList.Add(tvgun);
            break;

        case (int)GunPickup.GunType.ColtPython:
            PythonGun pythonGun = new PythonGun(this, firePoint, hitEffects[0], bulletObjs[5], gunSounds[0], gunAnimControllers[6], gunicons[6]);
            gunList.Add(pythonGun);
            break;
        }
        if (gunHUDSlots != null)
        {
            SetPlayerCurrentGun(currentGun);
        }
        playSound(gunSounds[6]);
    }
Пример #26
0
        // Инициализация схватки
        static public void Init(int _amount = 1)
        {
            Reset();

            amount   = _amount;
            monsters = new Monster[amount];
            for (int i = 0; i < amount; i++)
            {
                if (i == 0)
                {
                    monsters[i] = new Monster
                    {
                        Type = (Monster.MType)RPG.rnd.Next(0, 7),
                    }
                }
                ;

                else
                {
                    monsters[i] = new Monster(LVL - 1)
                    {
                        Type = (Monster.MType)RPG.rnd.Next(0, 7),
                    }
                };
            }

            if (amount != 1)
            {
                RPG.Dialogue("Монстры!");
                for (int i = 0; i < amount; i++)
                {
                    monsters[i].HP     *= (1 - 1 / (2 * amount));
                    monsters[i].Damage *= (1 - 1 / (2 * amount));

                    RPG.Dialogue($"\n{i}: {GetTypeName(monsters[i].Type)} {monsters[i].Name} (УР: {monsters[i].LVL})!"
                                 + "\nУ него: " + monsters[i].HP + " HP"
                                 + "\nи " + monsters[i].Damage + " Урона",
                                 false, ConsoleColor.Red);
                }
            }
            else
            {
                RPG.Dialogue(GetTypeName(monsters[0].Type) + $" {monsters[0].Name}!"
                             + "\nУ него: " + monsters[0].HP + " HP"
                             + "\nи " + monsters[0].Damage + " Урона",
                             false, ConsoleColor.Red);          // Вывод строки красного цвета о начале схватки
            }
            MonsterFight();                                     // Начать цикл схватки
        }
Пример #27
0
        private void CreateAndSaveCharacter()
        {
            var classDef = Rm_RPGHandler.Instance.Player.CharacterDefinitions.First(c => c.ID == SaveCharacterID);

            var startingScene     = classDef.StartingScene;
            var startingWorldArea = classDef.StartingWorldArea;
            var startingLocation  = classDef.StartingLocation;

            var playerToCreate = new PlayerSave(SaveName, SaveClassID, SaveGenderID, SaveRaceID, SaveSubRaceID, SaveCharacterID, CharacterName.text, startingScene);

            playerToCreate.Initialize();

            if (classDef.HasStartingPet)
            {
                var petDef = Rm_RPGHandler.Instance.Player.PetDefinitions.FirstOrDefault(p => p.ID == classDef.StartingPet);
                playerToCreate.CurrentPet = new PetData(petDef);
            }
            playerToCreate.WorldMap.CurrentWorldAreaID = startingWorldArea;
            playerToCreate.WorldMap.CurrentLocationID  = startingLocation;

            if (classDef.StartAtWorldLocation)
            {
                var locationScene =
                    Rm_RPGHandler.Instance.Customise.WorldMapLocations.First(w => w.ID == startingWorldArea).Locations.
                    First(l => l.ID == startingLocation).SceneName;
                playerToCreate.CurrentScene = locationScene;
            }

            //Save MetaData
            foreach (var metaData in MetaDataValues)
            {
                var newMetaData = new MetaDataInfo();
                newMetaData.ID      = metaData.Key;
                newMetaData.ValueID = metaData.Value;

                playerToCreate.Character.MetaData.Add(newMetaData);
            }

            //Save visual customisations
            var allCustomisations = FindObjectsOfType <VisualCustomiser>();
            var customisations    = allCustomisations.Select(e => e.VisualCustomisation);

            playerToCreate.VisualCustomisations = GeneralMethods.CopyObject(customisations).ToList();

            //Save and Load the player
            PlayerSaveLoadManager.Instance.Save(playerToCreate, true);
            RPG.LoadLevel(playerToCreate.CurrentScene, false, false);
        }
Пример #28
0
        } // ChainClash

        #region Functions
        private static void GetTypeSpecAtk(Monster monster)    // Получить специальную атаку типа монстра
        {
            double a = RPG.rnd.NextDouble();

            switch (monster.Type)
            {
            case Monster.MType.Explosive:
                if (count == 4)
                {
                    monster.Damage = (float)Math.Pow(2, LVL) / 1.5f;
                    monster.HP     = 0;

                    RPG.Dialogue("Монстр подорвался.", true, ConsoleColor.DarkRed);
                }
                break;

            case Monster.MType.Thorned:
                if (a <= 1f / 4)
                {
                    defenceMultiplier = 0f;
                    RPG.Dialogue("Монстр выстрелил шип!", true, ConsoleColor.DarkRed);
                }
                break;

            case Monster.MType.Ice:
                if (a <= 1f / 20)
                {
                    monster.isInvincible = true;
                    monster.Damage       = 0;

                    RPG.Dialogue("Монстр поставил ледяной щит.", true, ConsoleColor.Cyan);
                }
                break;

            case Monster.MType.Luminous:
                if (a <= 3f / 10)
                {
                    monster.Damage += monster.Damage / 5;

                    RPG.Dialogue("Монстр использовал линзу!", true, ConsoleColor.White);
                }
                break;

            default:
                break;
            }
        }
Пример #29
0
 void OnTriggerEnter(Collider other)
 {
     Debug.Log("trigger:" + other.name + " " + other.tag);
     if (other.tag == "Player")
     {
         if (flagPrereq == "" || RPG.GetBool(flagPrereq))  // the prequisit is done
         {
             // add quest to the main RPG & this destroy myself to stop muliple triggers
             GameObject rpg = GameObject.FindGameObjectWithTag("GameController");
             // because unity will not allow add component by name
             // we now have an existing component attached & use its type to get the correct version
             // string=>Type never works for javascript behaviours
             rpg.AddComponent(questComponent.GetType()); // add this component to the quest system
             Destroy(this);
         }
     }
 }
Пример #30
0
    public void Injure(int dmg, GameObject who)
    {
        RPG.InjurePlayer(dmg);
        RPG.FloatingTextAbove(transform, dmg.ToString(), Color.red, 2);
        RPGSounds.Instance.PlayHitSound();
        if (who != null)
        {
            knockback.Knockback(who.transform.position, gameObject.transform.position, 10);

            /*Vector3 direction=(transform.position-who.transform.position);
             * direction.y=0;
             * direction.Normalize();
             * direction.y=+1;
             * knockback.Knockback(direction*5);
             * Debug.Log("player kb:"+direction);*/
        }
    }
Пример #31
0
        public override void OnUse(Monster[] monsters, int index = 0)
        {
            Random rnd    = new Random();
            int    potion = rnd.Next(1, 5);

            switch (potion)
            {
            // heal the player
            case 1:
                float recovHP = 10;
                if (Player.MaxHP - Player.HP > 10)
                {
                    Player.HP += 10;
                }
                else
                {
                    recovHP   = Player.MaxHP - Player.HP;
                    Player.HP = Player.MaxHP;
                }
                RPG.Dialogue($"Лечебное Зелье! (Восстановлено {recovHP})", true, ConsoleColor.Green);
                break;

            // damage all monsters
            case 2:
                foreach (Monster mnstr in monsters)
                {
                    mnstr.HP -= 12;
                }
                RPG.Dialogue("Взрывное Зелье! (Всем монстрам было нанесено 12 урона)", true, ConsoleColor.Green);
                break;

            // damage a random monster
            case 3:
                int idx = rnd.Next(0, monsters.Length - 1);
                monsters[idx].HP -= 31 - 16 / (monsters[idx].LVL + 1);
                RPG.Dialogue($"Необычно Конкретное Зелье! (Монстру {idx+1} было нанесено {31 - 16 / (monsters[idx].LVL + 1)})", true, ConsoleColor.Green);
                break;

            // damage the player
            case 4:
                Player.HP -= 62 - 60 / (Player.LVL + 1);
                RPG.Dialogue($"Зелье Саботажа! (Вам было нанесено {62 - 60 / (Player.LVL + 1)} урона)", true, ConsoleColor.Red);
                break;
            }
        }
Пример #32
0
 private void LoadNewMap(RPG.Map map)
 {
     _map = map;
     if (map == null)
     {
         Invalidate();
         return;
     }
     _tileset = Project.Data.Tilesets[_map.tileset_id];
     Size = new Size(MapPixelWidth, MapPixelHeight);
     _srcTexture = Cache.Tileset(_tileset.tileset_name).ToTexture(GraphicsDevice);
     _autotiles[0] = null;
     for (int i = 1; i <= _tileset.autotile_names.Count; i++)
     {
         string name = _tileset.autotile_names[i - 1];
         if (!_autotileCache.ContainsKey(name))
             _autotileCache[name] = CreateAutotile(name);
         _autotiles[i] = _autotileCache[name];
     }
     Invalidate();
 }
 private void SetTileset(RPG.Tileset tileset)
 {
     _tileset = tileset;
     if (_tileset == null)
     {
         Image = null;
         return;
     }
     _srcImage = Cache.Tileset(_tileset.tileset_name);
     Image = new Bitmap(_srcImage);
     Size = Image.Size;
 }