예제 #1
0
            public Archetypes.SpiritWhisperer.Spirit createSpiritWhispererSpirit(HexEngine associated_hex_engine, string asset_prefix, string extra_channel_asset_prefix, string extra_channel_asset_name, bool test = false)
            {
                test_mode            = test;
                hex_engine           = associated_hex_engine;
                prefix               = asset_prefix;
                extra_channel_prefix = extra_channel_asset_prefix;
                extra_channel_name   = extra_channel_asset_name;

                createSpiritAbility();
                createGreaterSpiritAbility();
                createTrueSpiritAbility();
                createManifestation();

                createHexes();

                return(new Archetypes.SpiritWhisperer.Spirit("Life",
                                                             "Life",
                                                             "A shaman who selects the life spirit appears more vibrant than most mortals. Her skin seems to glow, and her teeth are a pearly white. When she calls upon one of this spirit’s abilities, her eyes and hair shimmer in the light.",
                                                             manifestation.Icon,
                                                             "",
                                                             spirit_ability,
                                                             greater_spirit_ability,
                                                             manifestation,
                                                             hexes));
            }
예제 #2
0
            public Oracle.Spirit createOracleSpirit(HexEngine associated_hex_engine, string asset_prefix, bool test = false)
            {
                test_mode      = test;
                hex_engine     = associated_hex_engine;
                prefix         = asset_prefix;
                primary_stat   = hex_engine.hex_stat;
                secondary_stat = hex_engine.hex_stat;
                createHexes();

                createSpiritAbility();
                createGreaterSpiritAbility();

                spells = new BlueprintAbility[9]
                {
                    library.Get <BlueprintAbility>("91da41b9793a4624797921f221db653c"),                                                                    //color sparay
                    NewSpells.hypnotic_pattern,
                    SpellDuplicates.addDuplicateSpell(library.Get <BlueprintAbility>("ce7dad2b25acf85429b6c9550787b2d9"), "ShamanHeavensGlitterdust", ""), //glitterdust
                    library.Get <BlueprintAbility>("4b8265132f9c8174f87ce7fa6d0fe47b"),                                                                    //rainbow pattern
                    NewSpells.overland_flight,
                    library.Get <BlueprintAbility>("645558d63604747428d55f0dd3a4cb58"),                                                                    //chain lightning
                    library.Get <BlueprintAbility>("b22fd434bdb60fb4ba1068206402c4cf"),                                                                    //prismatic spray
                    library.Get <BlueprintAbility>("e96424f70ff884947b06f41a765b7658"),                                                                    //sunburst
                    NewSpells.meteor_swarm
                };

                return(new Oracle.Spirit("Heavens",
                                         "Heavens",
                                         "A shaman who selects the heavens spirit has eyes that sparkle like starlight, exuding an aura of otherworldliness to those she is around. When she calls upon one of this spirit’s abilities, her eyes turn pitch black and the colors around her drain for a brief moment.",
                                         library.Get <BlueprintAbility>("ce7dad2b25acf85429b6c9550787b2d9").Icon,//glitterdust
                                         "",
                                         spirit_ability,
                                         greater_spirit_ability,
                                         spells,
                                         hexes));
            }
예제 #3
0
            public Oracle.Spirit createOracleSpirit(HexEngine associated_hex_engine, string asset_prefix, bool test = false)
            {
                test_mode      = test;
                hex_engine     = associated_hex_engine;
                prefix         = asset_prefix;
                primary_stat   = hex_engine.hex_stat;
                secondary_stat = hex_engine.hex_stat;

                createHexes();
                createSpiritAbility();
                createGreaterSpiritAbility();

                spells = new BlueprintAbility[9]
                {
                    library.Get <BlueprintAbility>("ab395d2335d3f384e99dddee8562978f"), //shocking grasp
                    library.Get <BlueprintAbility>("c28de1f98a3f432448e52e5d47c73208"), //protection from arrows
                    library.Get <BlueprintAbility>("d2cff9243a7ee804cb6d5be47af30c73"), //lightning bolt
                    NewSpells.river_of_wind,
                    library.Get <BlueprintAbility>("16fff43f034133a4a86e914a523e021f"), //summon elemental large air
                    library.Get <BlueprintAbility>("093ed1d67a539ad4c939d9d05cfe192c"), //sirocco
                    NewSpells.scouring_winds,
                    library.Get <BlueprintAbility>("333efbf776ab61c4da53e9622751d95f"), //summon elemental elder air
                    NewSpells.winds_of_vengeance
                };

                return(new Oracle.Spirit("Wind",
                                         "Wind",
                                         "A shaman who selects the wind spirit appears windswept, and her movements seem lithe and carefree.",
                                         library.Get <BlueprintAbility>("093ed1d67a539ad4c939d9d05cfe192c").Icon,//sirocco
                                         "",
                                         spirit_ability,
                                         greater_spirit_ability,
                                         spells,
                                         hexes));
            }
예제 #4
0
            public Archetypes.SpiritWhisperer.Spirit createSpiritWhispererSpirit(HexEngine associated_hex_engine, string asset_prefix, string manifestation_asset_prefix, bool test = false)
            {
                test_mode            = test;
                hex_engine           = associated_hex_engine;
                prefix               = asset_prefix;
                manifestation_prefix = manifestation_asset_prefix;
                primary_stat         = hex_engine.hex_stat;
                secondary_stat       = hex_engine.hex_secondary_stat;

                createSpiritAbility();
                createGreaterSpiritAbility();
                createManifestation();

                createHexes();

                return(new Archetypes.SpiritWhisperer.Spirit("Battle",
                                                             "Battle",
                                                             "A shaman who selects the battle spirit gains scars from every wound she takes, and the grit of battle always seems to cling on her body. When she calls upon one of this spirit’s abilities, she grows in stature—becoming taller and more muscular, with a grimace of rage stretching across her face.",
                                                             manifestation.Icon,
                                                             "",
                                                             spirit_ability,
                                                             greater_spirit_ability,
                                                             manifestation,
                                                             hexes));
            }
예제 #5
0
            public Oracle.Spirit createOracleSpirit(HexEngine associated_hex_engine, string asset_prefix, bool test = false)
            {
                test_mode      = test;
                hex_engine     = associated_hex_engine;
                prefix         = asset_prefix;
                primary_stat   = hex_engine.hex_stat;
                secondary_stat = hex_engine.hex_stat;

                createHexes();

                createSpiritAbility();
                createGreaterSpiritAbility();

                spells = new BlueprintAbility[9]
                {
                    library.Get <BlueprintAbility>("4783c3709a74a794dbe7c8e7e0b1b038"),                                         //burning hands
                    library.Get <BlueprintAbility>("21ffef7791ce73f468b6fca4d9371e8b"),                                         //resist energy
                    library.Get <BlueprintAbility>("2d81362af43aeac4387a3d4fced489c3"),                                         //fireball
                    NewSpells.wall_of_fire,
                    library.Get <BlueprintAbility>("b3a203742191449458d2544b3f442194"),                                         //summon elemental large fire
                    NewSpells.fire_seeds,
                    SpellDuplicates.addDuplicateSpell("e3d0dfe1c8527934294f241e0ae96a8d", "FireStormShamanFlameSpiritAbility"), //firestorm
                    NewSpells.incendiary_cloud,
                    library.Get <BlueprintAbility>("08ccad78cac525040919d51963f9ac39"),                                         //fiery body
                };
                return(new Oracle.Spirit("Flame",
                                         "Flame",
                                         "A shaman who selects the flame spirit has a radiant light behind her eyes and the faint smell of smoke about her. When she calls upon one of this spirit’s abilities, a hungry spectral flame dances around her body.",
                                         library.Get <BlueprintAbility>("19309b5551a28d74288f4b6f7d8d838d").Icon, //wall of fire
                                         "",
                                         spirit_ability,
                                         greater_spirit_ability,
                                         spells,
                                         hexes));
            }
예제 #6
0
            public Archetypes.SpiritWhisperer.Spirit createSpiritWhispererSpirit(HexEngine associated_hex_engine, string asset_prefix, string touch_of_the_grave_asset_prefix, bool test = false)
            {
                test_mode  = test;
                hex_engine = associated_hex_engine;
                prefix     = asset_prefix;
                touch_of_the_grave_prefix = touch_of_the_grave_asset_prefix;
                primary_stat   = hex_engine.hex_stat;
                secondary_stat = hex_engine.hex_secondary_stat;

                createHexes();

                createSpiritAbility();
                createGreaterSpiritAbility();
                createManifestation();

                return(new Archetypes.SpiritWhisperer.Spirit("Bones",
                                                             "Bones",
                                                             "A shaman who selects the bones spirit is cadaverously thin, with sunken eye sockets and dead eyes that stare off into the distance. Her body has a faint smell of the grave. When she calls upon one of this spirit’s abilities, a ghostly wind whips her hair and clothes about, and the unpleasant stench becomes more prominent.",
                                                             manifestation.Icon,
                                                             "",
                                                             spirit_ability,
                                                             greater_spirit_ability,
                                                             manifestation,
                                                             hexes));
            }
예제 #7
0
            public Archetypes.SpiritWhisperer.Spirit createSpiritWhispererSpirit(HexEngine associated_hex_engine, string asset_prefix, bool test = false)
            {
                test_mode      = test;
                hex_engine     = associated_hex_engine;
                prefix         = asset_prefix;
                primary_stat   = hex_engine.hex_stat;
                secondary_stat = hex_engine.hex_secondary_stat;

                createHexes();

                createSpiritAbility();
                createGreaterSpiritAbility();
                createManifestation();


                return(new Archetypes.SpiritWhisperer.Spirit("Waves",
                                                             "Waves",
                                                             "A shaman who selects the waves spirit has a fluid grace that exhibits itself whenever she moves. When she calls upon one of this spirit’s abilities, floating orbs dance about her, sublimating between icy crystals, misty vapors, and globules of water.",
                                                             library.Get <BlueprintAbility>("40681ea748d98f54ba7f5dc704507f39").Icon,//charged blast
                                                             "",
                                                             spirit_ability,
                                                             greater_spirit_ability,
                                                             manifestation,
                                                             hexes.Skip(1).ToArray()));
            }
예제 #8
0
        public void AddEngine(string label, UserControl page = null, HexEngine engine = null)
        {
            var tab = new TabItem();

            var labelTemplate = this.colourTabLabel;

            var tabLabel = new Label()
            {
                Content         = label,
                FontSize        = labelTemplate.FontSize,
                FontFamily      = labelTemplate.FontFamily,
                Padding         = labelTemplate.Padding,
                BorderThickness = labelTemplate.BorderThickness,
                BorderBrush     = labelTemplate.BorderBrush
            };

            if (engine == null || page == null)
            {
                tabLabel.Foreground = new SolidColorBrush(Colors.Red);
            }

            tab.Header = tabLabel;

            tab.Content     = page;
            tab.DataContext = engine; // Store a reference to the engine so we can activate it

            tabControl.Items.Add(tab);
        }
예제 #9
0
    public static void BeginMovement(WitchUnit wUnit)
    {
        currentActiveUnit = wUnit;
        HexEngine         hEngine    = HexEngine.instance;
        MapPresets        mPresets   = hEngine.mapPresets;
        List <Vector3Int> neighbours = HexEngine.instance.GetNeighbors(currentActiveUnit.currentHex.Coordinates);

        ShowNeighbours(neighbours, hEngine);
    }
예제 #10
0
 private static void ShowNeighbours(List <Vector3Int> nCoordinates, HexEngine hEngine)
 {
     highlightedTiles = new List <HexTile>();
     for (int i = 0; i < nCoordinates.Count; i++)
     {
         HexTile hexTile = hEngine.Hexes[nCoordinates[i]];
         if (hexTile.pairedUnit == null && hexTile.altitude > HexEngine.instance.mapPresets.seaLevel)
         {
             hexTile.HighlightMoveable();
             highlightedTiles.Add(hexTile);
         }
     }
 }
예제 #11
0
        static void createDivineHexes()
        {
            var hex_engine = new HexEngine(new BlueprintCharacterClass[] { archetype.GetParentClass() }, StatType.Wisdom, StatType.Charisma, archetype: archetype);

            var slumber_hex = hex_engine.createSlumber("DivineScourgeSlumber",
                                                       Witch.slumber_hex.Name,
                                                       Witch.slumber_hex.Description,
                                                       "", "", "");

            var misfortune_hex = hex_engine.createMisfortune("DivineScourgeMisfortune",
                                                             Witch.misfortune_hex.Name,
                                                             Witch.misfortune_hex.Description,
                                                             "", "", "", "");

            var evil_eye = hex_engine.createEvilEye("DivineScourgeEvilEye",
                                                    Witch.evil_eye.Name,
                                                    Witch.evil_eye.Description,
                                                    "", "", "", "", "", "", "", "");

            var agony = hex_engine.createAgony("DivineScourgeAgony",
                                               Witch.agony.Name,
                                               Witch.agony.Description,
                                               "", "", "", "");

            var restless_slumber = hex_engine.createRestlessSlumber("DivineScourgeRestlessSlumber",
                                                                    Witch.restless_slumber.Name,
                                                                    Witch.restless_slumber.Description
                                                                    );

            restless_slumber.AddComponent(slumber_hex.PrerequisiteFeature());

            var retribution = hex_engine.createRetribution("DivineScourgeRetribution",
                                                           Witch.retribution.Name,
                                                           Witch.retribution.Description,
                                                           "", "", ""
                                                           );

            divine_hexes = Helpers.CreateFeatureSelection("DivineScourgeDivineHexSelection",
                                                          "Divine Hexes",
                                                          "At 3rd level and every 4 cleric levels thereafter, a divine scourge can select the following hexes from the witch class hex list, up to a maximum of five hexes at 19th level: evil eye, misfortune, and slumber.\n"
                                                          + "At 11th level, a divine scourge can instead select from the following list of major hexes: agony, restless slumber, and retribution.\n"
                                                          + "The divine scourge uses her Wisdom modifier instead of her Intelligence modifier to determine the save DCs of her hexes. Any hex that refers to using her Intelligence modifier to determine its duration or effect instead uses her Charisma modifier for that purpose.",
                                                          "",
                                                          null,
                                                          FeatureGroup.None);

            divine_hexes.AllFeatures = new BlueprintFeature[] { slumber_hex, evil_eye, misfortune_hex, agony, restless_slumber, retribution };
        }
예제 #12
0
        static void createSpiritSelection()
        {
            var wizard = library.Get <BlueprintCharacterClass>("ba34257984f4c41408ce1dc2004e342e");

            hex_engine = new HexEngine(new BlueprintCharacterClass[] { wizard }, StatType.Intelligence, StatType.Charisma, archetype);

            bool test_mode = false;

            spirits_engine = new SpiritsEngine(hex_engine);

            battle_spirit  = new SpiritsEngine.BattleSpirit();
            bones_spirit   = new SpiritsEngine.BonesSpirit();
            flame_spirit   = new SpiritsEngine.FlameSpirit();
            heavens_spirit = new SpiritsEngine.HeavensSpirit();
            life_spirit    = new SpiritsEngine.LifeSpirit();
            lore_spirit    = new SpiritsEngine.LoreSpirit();
            nature_spirit  = new SpiritsEngine.NatureSpirit();
            stone_spirit   = new SpiritsEngine.StoneSpirit();
            waves_spirit   = new SpiritsEngine.WavesSpirit();
            wind_spirit    = new SpiritsEngine.WindSpirit();


            spirits.Add("Battle", battle_spirit.createSpiritWhispererSpirit(hex_engine, "SpiritWhisperer", "SpiritWhisperer", test_mode));
            spirits.Add("Bones", bones_spirit.createSpiritWhispererSpirit(hex_engine, "SpiritWhisperer", "SpiritWhisperer", test_mode));
            spirits.Add("Flame", flame_spirit.createSpiritWhispererSpirit(hex_engine, "SpiritWhisperer", test_mode));
            spirits.Add("Stone", stone_spirit.createSpiritWhispererSpirit(hex_engine, "SpiritWhisperer", test_mode));
            spirits.Add("Waves", waves_spirit.createSpiritWhispererSpirit(hex_engine, "SpiritWhisperer", test_mode));
            spirits.Add("Wind", wind_spirit.createSpiritWhispererSpirit(hex_engine, "SpiritWhisperer", test_mode));
            spirits.Add("Nature", nature_spirit.createSpiritWhispererSpirit(hex_engine, "SpiritWhisperer", test_mode));
            spirits.Add("Lore", lore_spirit.createSpiritWhispererSpirit(hex_engine, "SpiritWhisperer", test_mode));
            spirits.Add("Heavens", heavens_spirit.createSpiritWhispererSpirit(hex_engine, "SpiritWhisperer", test_mode));
            spirits.Add("Life", life_spirit.createSpiritWhispererSpirit(hex_engine, "SpiritWhisperer", "SpiritWhisperer", "Extra Channel (Spirit Whisperer Life Spirit)", test_mode));

            spirit_selection = Helpers.CreateFeatureSelection("SpiritWhispererSpiritLink",
                                                              "Spirit Link",
                                                              "At 1st level, a spirit whisperer forms a mystical bond with a spirit. The spirit whisperer picks a spirit from the shaman’s list of spirits. At 1st level, he gains a spirit ability granted by that spirit. At 8th level, he gains the greater spirit ability granted by that spirit (or true spirit ability for Lore spirit). At 20th level, the spirit whisperer gains the manifestation ability granted by the spirit. He uses his wizard level as his shaman level for determining the effects and DCs of abilities granted by the spirit. In addition, he uses his Intelligence modifier in place of his Wisdom modifier for these abilities. He does not gain hexes, spirit magic spells, or the true spirit ability typically granted to a shaman by these spirits.",
                                                              "",
                                                              null,
                                                              FeatureGroup.None);

            foreach (var s in spirits)
            {
                spirit_selection.AllFeatures = spirit_selection.AllFeatures.AddToArray(s.Value.progression);
            }
        }
예제 #13
0
        /// <summary>
        /// Set the current engine to use when in Engine mode
        /// Set to null to disable the engine.
        /// Engines are automatically disabled/enabled when switching
        /// </summary>
        /// <param name="engine"></param>
        public void SetEngine(HexEngine engine)
        {
            // Switch engines
            if (engine != currentEngine)
            {
                if (currentEngine != null)
                {
                    currentEngine.Disable();
                }

                if (engine != null)
                {
                    engine.Enable();
                }
            }

            currentEngine = engine;
        }
예제 #14
0
            public Shaman.Spirit createShamanSpirit(HexEngine associated_hex_engine, string asset_prefix, string touch_of_the_grave_asset_prefix, bool test = false)
            {
                test_mode  = test;
                hex_engine = associated_hex_engine;
                prefix     = asset_prefix;
                touch_of_the_grave_prefix = touch_of_the_grave_asset_prefix;
                primary_stat   = hex_engine.hex_stat;
                secondary_stat = hex_engine.hex_secondary_stat;

                createHexes();

                createSpiritAbility();
                createGreaterSpiritAbility();
                createTrueSpiritAbility();
                createManifestation();

                spells = new BlueprintAbility[9]
                {
                    library.Get <BlueprintAbility>("bd81a3931aa285a4f9844585b5d97e51"), //cause fear
                    library.Get <BlueprintAbility>("7a5b5bf845779a941a67251539545762"), //false life
                    library.Get <BlueprintAbility>("4b76d32feb089ad4499c3a1ce8e1ac27"), //animate dead
                    library.Get <BlueprintAbility>("d2aeac47450c76347aebbc02e4f463e0"), //fear
                    library.Get <BlueprintAbility>("4fbd47525382517419c66fb548fe9a67"), //slay living
                    library.Get <BlueprintAbility>("a89dcbbab8f40e44e920cc60636097cf"), //circle of death
                    library.Get <BlueprintAbility>("76a11b460be25e44ca85904d6806e5a3"), //create undead
                    library.Get <BlueprintAbility>("08323922485f7e246acb3d2276515526"), //horrid witling
                    library.Get <BlueprintAbility>("b24583190f36a8442b212e45226c54fc"), //wail of banshee
                };


                return(new Shaman.Spirit("Bones",
                                         "Bones",
                                         "A shaman who selects the bones spirit is cadaverously thin, with sunken eye sockets and dead eyes that stare off into the distance. Her body has a faint smell of the grave. When she calls upon one of this spirit’s abilities, a ghostly wind whips her hair and clothes about, and the unpleasant stench becomes more prominent.",
                                         manifestation.Icon,
                                         "",
                                         spirit_ability,
                                         greater_spirit_ability,
                                         true_spirit_ability,
                                         manifestation,
                                         hexes,
                                         spells));
            }
예제 #15
0
            public Shaman.Spirit createShamanSpirit(HexEngine associated_hex_engine, string asset_prefix, string extra_channel_asset_prefix, string extra_channel_asset_name, bool test = false)
            {
                test_mode            = test;
                hex_engine           = associated_hex_engine;
                prefix               = asset_prefix;
                extra_channel_prefix = extra_channel_asset_prefix;
                extra_channel_name   = extra_channel_asset_name;
                primary_stat         = hex_engine.hex_stat;
                secondary_stat       = hex_engine.hex_secondary_stat;

                createSpiritAbility();
                createGreaterSpiritAbility();
                createTrueSpiritAbility();
                createManifestation();

                createHexes();

                spells = new BlueprintAbility[9]
                {
                    library.Get <BlueprintAbility>("f6f95242abdfac346befd6f4f6222140"),                                            //remove sickness
                    library.Get <BlueprintAbility>("e84fc922ccf952943b5240293669b171"),                                            //lesser restoration
                    SpellDuplicates.addDuplicateSpell("e7240516af4241b42b2cd819929ea9da", "ShamanLifeSpiritNeutralizePoison", ""), //neutralzie poison
                    library.Get <BlueprintAbility>("f2115ac1148256b4ba20788f7e966830"),                                            //restoration
                    library.Get <BlueprintAbility>("d5847cad0b0e54c4d82d6c59a3cda6b0"),                                            //breath of life
                    SpellDuplicates.addDuplicateSpell("5da172c4c89f9eb4cbb614f3a67357d3", "ShamanLifeSpiritHeal", ""),             //heal
                    library.Get <BlueprintAbility>("fafd77c6bfa85c04ba31fdc1c962c914"),                                            //greater restoration
                    SpellDuplicates.addDuplicateSpell("867524328b54f25488d371214eea0d90", "shamanLifeSpiritMassHeal", ""),         //mass heal
                    SpellDuplicates.addDuplicateSpell("80a1a388ee938aa4e90d427ce9a7a3e9", "shamanLifeSpiritResurrection", ""),     //resurrection
                };

                return(new Shaman.Spirit("Life",
                                         "Life",
                                         "A shaman who selects the life spirit appears more vibrant than most mortals. Her skin seems to glow, and her teeth are a pearly white. When she calls upon one of this spirit’s abilities, her eyes and hair shimmer in the light.",
                                         manifestation.Icon,
                                         "",
                                         spirit_ability,
                                         greater_spirit_ability,
                                         true_spirit_ability,
                                         manifestation,
                                         hexes,
                                         spells));
            }
예제 #16
0
            public Archetypes.SpiritWhisperer.Spirit createSpiritWhispererSpirit(HexEngine associated_hex_engine, string asset_prefix, bool test = false)
            {
                test_mode  = test;
                hex_engine = associated_hex_engine;
                prefix     = asset_prefix;

                createHexes();
                createSpiritAbility();
                createGreaterSpiritAbility();
                createManifestation();
                return(new Archetypes.SpiritWhisperer.Spirit("Stone",
                                                             "Stone",
                                                             "The skin of a shaman who selects the stone spirit takes on a rough, stony appearance. When the shaman calls upon one of this spirit’s abilities, tiny gemstones underneath her flesh pulse with a bright glow, like phosphorescent geodes glittering in a dark cave.",
                                                             library.Get <BlueprintAbility>("01300baad090d634cb1a1b2defe068d6").Icon,//clashing rocks
                                                             "",
                                                             spirit_ability,
                                                             greater_spirit_ability,
                                                             manifestation,
                                                             hexes));
            }
예제 #17
0
            public Shaman.Spirit createShamanSpirit(HexEngine associated_hex_engine, string asset_prefix, bool test = false)
            {
                test_mode      = test;
                hex_engine     = associated_hex_engine;
                prefix         = asset_prefix;
                primary_stat   = hex_engine.hex_stat;
                secondary_stat = hex_engine.hex_secondary_stat;

                createHexes();

                createSpiritAbility();
                createGreaterSpiritAbility();
                createTrueSpiritAbility();
                createManifestation();

                spells = new BlueprintAbility[9]
                {
                    NewSpells.frost_bite,
                    library.Get <BlueprintAbility>("b6010dda6333bcf4093ce20f0063cd41"), //frigid touch
                    NewSpells.sleet_storm,
                    library.Get <BlueprintAbility>("fcb028205a71ee64d98175ff39a0abf9"), //ice storm
                    library.Get <BlueprintAbility>("65e8d23aef5e7784dbeb27b1fca40931"), //icy prison
                    NewSpells.fluid_form,
                    NewSpells.ice_body,
                    library.Get <BlueprintAbility>("7ef49f184922063499b8f1346fb7f521"), //seamantle
                    library.Get <BlueprintAbility>("d8144161e352ca846a73cf90e85bf9ac"), //tsunami
                };


                return(new Shaman.Spirit("Waves",
                                         "Waves",
                                         "A shaman who selects the waves spirit has a fluid grace that exhibits itself whenever she moves. When she calls upon one of this spirit’s abilities, floating orbs dance about her, sublimating between icy crystals, misty vapors, and globules of water.",
                                         library.Get <BlueprintAbility>("40681ea748d98f54ba7f5dc704507f39").Icon,//charged blast
                                         "",
                                         spirit_ability,
                                         greater_spirit_ability,
                                         true_spirit_ability,
                                         manifestation,
                                         hexes,
                                         spells));
            }
예제 #18
0
            public Shaman.Spirit createShamanSpirit(HexEngine associated_hex_engine, string asset_prefix, string manifestation_asset_prefix, bool test = false)
            {
                test_mode            = test;
                hex_engine           = associated_hex_engine;
                prefix               = asset_prefix;
                manifestation_prefix = manifestation_asset_prefix;
                primary_stat         = hex_engine.hex_stat;
                secondary_stat       = hex_engine.hex_secondary_stat;

                createSpiritAbility();
                createGreaterSpiritAbility();
                createTrueSpiritAbility();
                createManifestation();

                spells = new BlueprintAbility[9]
                {
                    library.Get <BlueprintAbility>("c60969e7f264e6d4b84a1499fdcf9039"), //enlarge person
                    library.Get <BlueprintAbility>("c28de1f98a3f432448e52e5d47c73208"), //protection from arrows
                    library.Get <BlueprintAbility>("2d4263d80f5136b4296d6eb43a221d7d"), //magical vestment,
                    NewSpells.wall_of_fire_fire_domain,
                    library.Get <BlueprintAbility>("90810e5cf53bf854293cbd5ea1066252"), //righteous might
                    library.Get <BlueprintAbility>("6a234c6dcde7ae94e94e9c36fd1163a7"), //bulls strength mass
                    library.Get <BlueprintAbility>("da1b292d91ba37948893cdbe9ea89e28"), //legendary proportions
                    library.Get <BlueprintAbility>("7cfbefe0931257344b2cb7ddc4cdff6f"), //stormbolts
                    library.Get <BlueprintAbility>("01300baad090d634cb1a1b2defe068d6"), //clashing rocks
                };

                createHexes();

                return(new Shaman.Spirit("Battle",
                                         "Battle",
                                         "A shaman who selects the battle spirit gains scars from every wound she takes, and the grit of battle always seems to cling on her body. When she calls upon one of this spirit’s abilities, she grows in stature—becoming taller and more muscular, with a grimace of rage stretching across her face.",
                                         manifestation.Icon,
                                         "",
                                         spirit_ability,
                                         greater_spirit_ability,
                                         true_spirit_ability,
                                         manifestation,
                                         hexes,
                                         spells));
            }
예제 #19
0
            public Archetypes.SpiritWhisperer.Spirit createSpiritWhispererSpirit(HexEngine associated_hex_engine, string asset_prefix, bool test = false)
            {
                test_mode  = test;
                hex_engine = associated_hex_engine;
                prefix     = asset_prefix;
                createHexes();

                createSpiritAbility();
                createGreaterSpiritAbility();
                createManifestation();

                return(new Archetypes.SpiritWhisperer.Spirit("Heavens",
                                                             "Heavens",
                                                             "A shaman who selects the heavens spirit has eyes that sparkle like starlight, exuding an aura of otherworldliness to those she is around. When she calls upon one of this spirit’s abilities, her eyes turn pitch black and the colors around her drain for a brief moment.",
                                                             library.Get <BlueprintAbility>("ce7dad2b25acf85429b6c9550787b2d9").Icon,//glitterdust
                                                             "",
                                                             spirit_ability,
                                                             greater_spirit_ability,
                                                             manifestation,
                                                             hexes));
            }
예제 #20
0
            public Archetypes.SpiritWhisperer.Spirit createSpiritWhispererSpirit(HexEngine associated_hex_engine, string asset_prefix, bool test = false)
            {
                test_mode  = test;
                hex_engine = associated_hex_engine;
                prefix     = asset_prefix;

                createHexes();
                createSpiritAbility();
                createGreaterSpiritAbility();
                createManifestation();

                return(new Archetypes.SpiritWhisperer.Spirit("Wind",
                                                             "Wind",
                                                             "A shaman who selects the wind spirit appears windswept, and her movements seem lithe and carefree.",
                                                             library.Get <BlueprintAbility>("093ed1d67a539ad4c939d9d05cfe192c").Icon,//sirocco
                                                             "",
                                                             spirit_ability,
                                                             greater_spirit_ability,
                                                             manifestation,
                                                             hexes));
            }
예제 #21
0
            public Archetypes.SpiritWhisperer.Spirit createSpiritWhispererSpirit(HexEngine associated_hex_engine, string asset_prefix, bool test = false)
            {
                test_mode  = test;
                hex_engine = associated_hex_engine;
                prefix     = asset_prefix;

                createHexes();

                createSpiritAbility();
                createGreaterSpiritAbility();
                createManifestation();
                return(new Archetypes.SpiritWhisperer.Spirit("Nature",
                                                             "Nature",
                                                             "A shaman who selects the nature spirit takes on an appearance that reflects the aspect of the natural world she has the closest connection to. A nature shaman from the forest has a green tinge to her skin and hair, with eyes of sparkling emerald and the scent of green leaves and flowers about her. A nature shaman from the tundra is typically alabaster pale, with platinum hair and crystal blue eyes, and her skin always seems strangely cold.",
                                                             manifestation.Icon,
                                                             "",
                                                             spirit_ability,
                                                             greater_spirit_ability,
                                                             manifestation,
                                                             hexes));
            }
예제 #22
0
            public Shaman.Spirit createShamanSpirit(HexEngine associated_hex_engine, string asset_prefix, string spell_list_asset_prefix, bool test = false)
            {
                test_mode         = test;
                hex_engine        = associated_hex_engine;
                prefix            = asset_prefix;
                spell_list_prefix = spell_list_asset_prefix;
                primary_stat      = hex_engine.hex_stat;
                secondary_stat    = hex_engine.hex_secondary_stat;

                createHexes();
                createSpiritAbility();
                createGreaterSpiritAbility(true);
                createTrueSpiritAbility();
                createManifestation();

                spells = new BlueprintAbility[9]
                {
                    library.Get <BlueprintAbility>("2c38da66e5a599347ac95b3294acbe00"), //true strike
                    library.Get <BlueprintAbility>("f0455c9295b53904f9e02fc571dd2ce1"), //owls wisdom
                    library.Get <BlueprintAbility>("1a045f845778dc54db1c2be33a8c3c0a"), //see invisibility communal
                    library.Get <BlueprintAbility>("e9cc9378fd6841f48ad59384e79e9953"), //death ward
                    library.Get <BlueprintAbility>("4cf3d0fae3239ec478f51e86f49161cb"), //true seeing
                    library.Get <BlueprintAbility>("9f5ada581af3db4419b54db77f44e430"), //owls wisdom mass
                    library.Get <BlueprintAbility>("fafd77c6bfa85c04ba31fdc1c962c914"), //greater restoration
                    library.Get <BlueprintAbility>("0e67fa8f011662c43934d486acc50253"), //prediction of failure
                    NewSpells.time_stop
                };

                return(new Shaman.Spirit("Lore",
                                         "Lore",
                                         "A shaman who selects the lore spirit appears far wiser and knowing that her age would suggest. Though she can seem unassuming, her eyes give the impression she is peering deep into all she looks at, seeing the secrets of the essential merely by concentrating.",
                                         manifestation.Icon,
                                         "",
                                         new BlueprintFeature[] { spirit_ability, spirit_ability },
                                         new BlueprintFeature[] { greater_spirit_ability, greater_spirit_ability_wandering },
                                         new BlueprintFeature[] { true_spirit_ability, true_spirit_ability },
                                         manifestation,
                                         hexes,
                                         spells));
            }
            public Shaman.Spirit createShamanSpirit(HexEngine associated_hex_engine, string asset_prefix, bool test = false)
            {
                test_mode      = test;
                hex_engine     = associated_hex_engine;
                prefix         = asset_prefix;
                primary_stat   = hex_engine.hex_stat;
                secondary_stat = hex_engine.hex_secondary_stat;

                createHexes();

                createSpiritAbility();
                createGreaterSpiritAbility();
                createTrueSpiritAbility(true);
                createManifestation();

                spells = new BlueprintAbility[9]
                {
                    library.Get <BlueprintAbility>("403cf599412299a4f9d5d925c7b9fb33"), //Magic Fang
                    library.Get <BlueprintAbility>("5b77d7cc65b8ab74688e74a37fc2f553"), //barkskin
                    library.Get <BlueprintAbility>("754c478a2aa9bb54d809e648c3f7ac0e"), //dominate animal
                    library.Get <BlueprintAbility>("e418c20c8ce362943a8025d82c865c1c"), //cape of wasps
                    library.Get <BlueprintAbility>("6d1d48a939ce475409f06e1b376bc386"), //vinetrap
                    library.Get <BlueprintAbility>("7c5d556b9a5883048bf030e20daebe31"), //stone skin communal
                    library.Get <BlueprintAbility>("b974af13e45639a41a04843ce1c9aa12"), //creeping doom
                    library.Get <BlueprintAbility>("7cfbefe0931257344b2cb7ddc4cdff6f"), //stormbolts
                    library.Get <BlueprintAbility>("d8144161e352ca846a73cf90e85bf9ac"), //tsunami
                };

                return(new Shaman.Spirit("Nature",
                                         "Nature",
                                         "A shaman who selects the nature spirit takes on an appearance that reflects the aspect of the natural world she has the closest connection to. A nature shaman from the forest has a green tinge to her skin and hair, with eyes of sparkling emerald and the scent of green leaves and flowers about her. A nature shaman from the tundra is typically alabaster pale, with platinum hair and crystal blue eyes, and her skin always seems strangely cold.",
                                         manifestation.Icon,
                                         "",
                                         new BlueprintFeature[] { spirit_ability, spirit_ability },
                                         new BlueprintFeature[] { greater_spirit_ability, greater_spirit_ability },
                                         new BlueprintFeature[] { true_spirit_ability, true_spirit_ability_wandering },
                                         manifestation,
                                         hexes,
                                         spells));
            }
예제 #24
0
            public Archetypes.SpiritWhisperer.Spirit createSpiritWhispererSpirit(HexEngine associated_hex_engine, string asset_prefix, bool test = false)
            {
                test_mode         = test;
                hex_engine        = associated_hex_engine;
                prefix            = asset_prefix;
                spell_list_prefix = "";

                createHexes();
                createSpiritAbility();
                createTrueSpiritAbility();
                createManifestation();

                return(new Archetypes.SpiritWhisperer.Spirit("Lore",
                                                             "Lore",
                                                             "A shaman who selects the lore spirit appears far wiser and knowing that her age would suggest. Though she can seem unassuming, her eyes give the impression she is peering deep into all she looks at, seeing the secrets of the essential merely by concentrating.",
                                                             manifestation.Icon,
                                                             "",
                                                             spirit_ability,
                                                             true_spirit_ability,
                                                             manifestation,
                                                             hexes));
            }
예제 #25
0
            public Shaman.Spirit createShamanSpirit(HexEngine associated_hex_engine, string asset_prefix, bool test = false)
            {
                test_mode      = test;
                hex_engine     = associated_hex_engine;
                prefix         = asset_prefix;
                primary_stat   = hex_engine.hex_stat;
                secondary_stat = hex_engine.hex_secondary_stat;

                createHexes();
                createSpiritAbility();
                createGreaterSpiritAbility();
                createTrueSpiritAbility();
                createManifestation();

                spells = new BlueprintAbility[9]
                {
                    library.Get <BlueprintAbility>("85067a04a97416949b5d1dbf986d93f3"), //stone fist
                    library.Get <BlueprintAbility>("5181c2ed0190fc34b8a1162783af5bf4"), //stone call
                    library.Get <BlueprintAbility>("1a36c8b9ed655c249a9f9e8d4731f001"), //soothing mud
                    library.Get <BlueprintAbility>("d1afa8bc28c99104da7d784115552de5"), //spike stones
                    library.Get <BlueprintAbility>("c66e86905f7606c4eaa5c774f0357b2b"), //stoneskin
                    library.Get <BlueprintAbility>("989d3ed13d27d054ea2d26ab4956d075"), //summon elemental huge earth
                    library.Get <BlueprintAbility>("facdc8851a0b3f44a8bed50f0199b83c"), //elemental body IV earth
                    library.Get <BlueprintAbility>("65254c7a2cf18944287207e1de3e44e8"), //summon elemental elder earth
                    library.Get <BlueprintAbility>("01300baad090d634cb1a1b2defe068d6"), //clashing rocks
                };

                return(new Shaman.Spirit("Stone",
                                         "Stone",
                                         "The skin of a shaman who selects the stone spirit takes on a rough, stony appearance. When the shaman calls upon one of this spirit’s abilities, tiny gemstones underneath her flesh pulse with a bright glow, like phosphorescent geodes glittering in a dark cave.",
                                         library.Get <BlueprintAbility>("01300baad090d634cb1a1b2defe068d6").Icon,//clashing rocks
                                         "",
                                         spirit_ability,
                                         greater_spirit_ability,
                                         true_spirit_ability,
                                         manifestation,
                                         hexes,
                                         spells));
            }
예제 #26
0
            public Archetypes.SpiritWhisperer.Spirit createSpiritWhispererSpirit(HexEngine associated_hex_engine, string asset_prefix, bool test = false)
            {
                test_mode  = test;
                hex_engine = associated_hex_engine;
                prefix     = asset_prefix;

                createHexes();

                createSpiritAbility();
                createGreaterSpiritAbility();
                createManifestation();

                return(new Archetypes.SpiritWhisperer.Spirit("Flame",
                                                             "Flame",
                                                             "A shaman who selects the flame spirit has a radiant light behind her eyes and the faint smell of smoke about her. When she calls upon one of this spirit’s abilities, a hungry spectral flame dances around her body.",
                                                             library.Get <BlueprintAbility>("19309b5551a28d74288f4b6f7d8d838d").Icon, //wall of fire
                                                             "",
                                                             spirit_ability,
                                                             greater_spirit_ability,
                                                             manifestation,
                                                             hexes));
            }
예제 #27
0
        static public void createHexcrafter()
        {
            archetype = Helpers.Create <BlueprintArchetype>(a =>
            {
                a.name                 = "HexcrafterArchetype";
                a.LocalizedName        = Helpers.CreateString($"{a.name}.Name", "Hexcrafter");
                a.LocalizedDescription = Helpers.CreateString($"{a.name}.Description", "A hexcrafter magus has uncovered the secret of using his arcane pool to recreate witch hexes. These magi can hex friend and foe, curse those they strike, and expand their spell selection to include many curses and harmful spells.");
            });

            Helpers.SetField(archetype, "m_ParentClass", magus);
            library.AddAsset(archetype, "d8c2c968311942d19df6e352a97d8428"); //GuidManager.NewGuid("HexcrafterArchetype")

            hex_engine = new HexEngine(new BlueprintCharacterClass[] { magus }, StatType.Intelligence, StatType.Charisma, archetype);

            //createHexes();
            createBasicHexes();
            createHexArcana();
            createFeatures();

            var spell_recall          = library.Get <BlueprintFeature>("61fc0521e9992624e9c518060bf89c0f");
            var improved_spell_recall = library.Get <BlueprintFeature>("0ef6ec1c2fdfc204fbd3bff9f1609490");

            archetype.RemoveFeatures = new LevelEntry[] {
                Helpers.LevelEntry(4, spell_recall),
                Helpers.LevelEntry(11, improved_spell_recall)
            };

            archetype.AddFeatures = new LevelEntry[] {
                Helpers.LevelEntry(1, hexcrafter_spells, arcana_hexes),
                Helpers.LevelEntry(4, extra_hex),
                Helpers.LevelEntry(11, spell_recall)
            };

            magus.Progression.UIDeterminatorsGroup = magus.Progression.UIDeterminatorsGroup.AddToArray(hexcrafter_spells, arcana_hexes);
            magus.Progression.UIGroups             = magus.Progression.UIGroups.AddToArray(Helpers.CreateUIGroup(extra_hex));
            magus.Archetypes = magus.Archetypes.AddToArray(archetype);
        }
예제 #28
0
        /// <summary>
        /// Try and load all engines present
        /// </summary>
        private void LoadEngines(ControlWindow controlWindow)
        {
            var engineTypes = Engines.ListEngines();

            // Load engines & populate tabs
            foreach (var engineType in engineTypes)
            {
                string name = Engines.GetEngineName(engineType);

                // Try to load the engine
                HexEngine   engine = null;
                UserControl page   = null;
                try
                {
                    engine = Engines.LoadEngine(engineType);
                    page   = engine.GetControlPage();
                }
                catch (NotImplementedException)
                {
                    continue;
                }
                catch (Exception ex)
                {
                    string assyName = Plugins.GetAssemblyName(engineType);
                    if (assyName != null)
                    {
                        name += " (" + assyName + ")";
                    }

                    ExceptionDialog.ShowException(String.Format("Could not load {0}", name), ex, ExceptionSeverity.Error);
                    continue; // Ignore was pressed
                }

                // Add tab & page to the control window
                controlWindow.AddEngine(name, page, engine);
            }
        }
예제 #29
0
    private void Awake()
    {
        Time.timeScale = Speed;

        instance = this;
    }
 public SpiritsEngine(HexEngine associated_hex_engine)
 {
     hex_engine = associated_hex_engine;
 }