public static void InitMod() { Debug.Log("Begin mod init: Archaeologists"); // Register the new faction id's if (RegisterFactionIds()) { // Register the Guild class if (!GuildManager.RegisterCustomGuild(FactionFile.GuildGroups.GGroup0, typeof(ArchaeologistsGuild))) { throw new Exception("GuildGroup GGroup0 is already in use, unable to register Archaeologists Guild."); } // Register the quest list if (!QuestListsManager.RegisterQuestList("Archaeologists")) { throw new Exception("Quest list name is already in use, unable to register Archaeologists quest list."); } // Register the quest service id Services.RegisterGuildService(1000, GuildServices.Quests); // Register the custom locator service Services.RegisterGuildService(1001, ArchaeologistsGuild.LocatorService, "Locator Devices"); // Register the custom locator item DaggerfallUnity.Instance.ItemHelper.RegisterCustomItem(LocatorItem.templateIndex, ItemGroups.MiscItems, typeof(LocatorItem)); // Register the daedra summoning service Services.RegisterGuildService(1002, GuildServices.DaedraSummoning); // Register the custom repair service for teleport mark Services.RegisterGuildService(1003, ArchaeologistsGuild.RepairMarkService, "Repair Recall Mark"); // Register the training service id Services.RegisterGuildService(1004, GuildServices.Training); // Register the indentification service id Services.RegisterGuildService(1005, GuildServices.Identify); // Register the buy potions service id Services.RegisterGuildService(1006, GuildServices.BuyPotions); // Register the make potions service id Services.RegisterGuildService(1007, GuildServices.MakePotions); // Register the make potions service id Services.RegisterGuildService(1008, GuildServices.MakeMagicItems); // Register the Teleport potion GameManager.Instance.EntityEffectBroker.RegisterEffectTemplate(new TeleportPotion(), true); } else { throw new Exception("Faction id's are already in use, unable to register factions for Archaeologists Guild."); } // Override default formula FormulaHelper.RegisterOverride(mod, "CalculateEnemyPacification", (Func <PlayerEntity, DFCareer.Skills, bool>)CalculateEnemyPacification); // Add locator device object to scene and attach script GameObject go = new GameObject("LocatorDevice"); go.AddComponent <LocatorDevice>(); Debug.Log("Finished mod init: Archaeologists"); }
private static void InitMod() { Debug.Log("QuestMod InitMod"); QuestListsManager.RegisterQuestList("QuestMod"); Debug.Log("QuestMod QuestList Loaded"); }
public static void InitAtStartState(InitParams initParams) { mod = initParams.Mod; var go = new GameObject(mod.Title); Debug.Log("Started setup of : " + mod.Title); GameManager.Instance.QuestMachine.RegisterAction(new CustomPrompt(null)); if (!QuestListsManager.RegisterQuestList("CustomPrompt")) { throw new Exception("Quest list name is already in use, unable to register CustomPrompt quest list."); } mod.IsReady = true; }
protected override void GetQuest() { // Just exit if this NPC already involved in an active quest // If quest conditions are complete the quest system should pickup ending if (QuestMachine.Instance.IsLastNPCClickedAnActiveQuestor(guild)) { CloseWindow(); return; } // Get member status, including temple specific statuses MembershipStatus status = guild.IsMember() ? MembershipStatus.Member : MembershipStatus.Nonmember; if (guild.IsMember() && guildGroup == FactionFile.GuildGroups.HolyOrder) { status = (MembershipStatus)Enum.Parse(typeof(MembershipStatus), ((Temple)guild).Deity.ToString()); } // Get the faction id for affecting reputation on success/failure int factionId = GetFactionIdForGuild(); // Set up a pool of available quests. QuestListsManager questListsManager = GameManager.Instance.QuestListsManager; questPool = GameManager.Instance.QuestListsManager.GetGuildQuestPool(guildGroup, status, factionId, guild.GetReputation(playerEntity), guild.Rank); // Show the quest selection list if that feature has been enabled. if (DaggerfallUnity.Settings.GuildQuestListBox) { loadedQuests.Clear(); TextFile.Token[] tokens = DaggerfallUnity.Instance.TextProvider.CreateTokens( TextFile.Formatting.JustifyCenter, TextManager.Instance.GetText(textDatabase, "gettingQuests1"), TextManager.Instance.GetText(textDatabase, "gettingQuests2")); DaggerfallMessageBox gettingQuestsBox = new DaggerfallMessageBox(DaggerfallUI.UIManager, this); gettingQuestsBox.ClickAnywhereToClose = true; gettingQuestsBox.SetTextTokens(tokens); gettingQuestsBox.OnClose += GettingQuestsBox_OnClose; gettingQuestsBox.Show(); } else { // Select a quest at random from appropriate pool offeredQuest = questListsManager.SelectQuest(questPool, factionId); OfferQuest(); } }
public static void InitMod(bool bedSleeping, bool archery, bool riding, bool encumbrance, bool bandaging, bool shipPorts, bool expulsion, bool climbing, bool weaponSpeed, bool weaponMaterials, bool equipDamage, bool enemyAppearance, bool purifyPot, bool autoExtinguishLight, bool classicStrDmgBonus, bool variantNpcs) { Debug.Log("Begin mod init: RoleplayRealism"); Mod rrItemsMod = ModManager.Instance.GetMod("RoleplayRealismItems"); ModSettings rrItemsSettings = rrItemsMod != null?rrItemsMod.GetSettings() : null; if (bedSleeping) { PlayerActivate.RegisterCustomActivation(mod, 41000, BedActivation); PlayerActivate.RegisterCustomActivation(mod, 41001, BedActivation); PlayerActivate.RegisterCustomActivation(mod, 41002, BedActivation); } if (archery) { // Override adjust to hit and damage formulas FormulaHelper.RegisterOverride(mod, "AdjustWeaponHitChanceMod", (Func <DaggerfallEntity, DaggerfallEntity, int, int, DaggerfallUnityItem, int>)AdjustWeaponHitChanceMod); FormulaHelper.RegisterOverride(mod, "AdjustWeaponAttackDamage", (Func <DaggerfallEntity, DaggerfallEntity, int, int, DaggerfallUnityItem, int>)AdjustWeaponAttackDamage); } if (riding) { GameObject playerAdvGO = GameObject.Find("PlayerAdvanced"); if (playerAdvGO) { EnhancedRiding enhancedRiding = playerAdvGO.AddComponent <EnhancedRiding>(); if (enhancedRiding != null) { enhancedRiding.RealisticMovement = mod.GetSettings().GetBool("EnhancedRiding", "RealisticMovement"); enhancedRiding.TerrainFollowing = mod.GetSettings().GetBool("EnhancedRiding", "followTerrainEnabled"); enhancedRiding.SetFollowTerrainSoftenFactor(mod.GetSettings().GetInt("EnhancedRiding", "followTerrainSoftenFactor")); } } } if (encumbrance) { EntityEffectBroker.OnNewMagicRound += EncumbranceEffects_OnNewMagicRound; } if (rrItemsMod == null && bandaging) { DaggerfallUnity.Instance.ItemHelper.RegisterItemUseHandler((int)UselessItems2.Bandage, UseBandage); } if (shipPorts) { GameManager.Instance.TransportManager.ShipAvailiable = IsShipAvailiable; } if (expulsion) { // Register the TG/DB Guild classes if (!GuildManager.RegisterCustomGuild(FactionFile.GuildGroups.GeneralPopulace, typeof(ThievesGuildRR))) { throw new Exception("GuildGroup GeneralPopulace is already overridden, unable to register ThievesGuildRR guild class."); } if (!GuildManager.RegisterCustomGuild(FactionFile.GuildGroups.DarkBrotherHood, typeof(DarkBrotherhoodRR))) { throw new Exception("GuildGroup DarkBrotherHood is already overridden, unable to register DarkBrotherhoodRR guild class."); } } if (climbing) { FormulaHelper.RegisterOverride(mod, "CalculateClimbingChance", (Func <PlayerEntity, int, int>)CalculateClimbingChance); } if (weaponSpeed && (rrItemsSettings == null || !rrItemsSettings.GetBool("Modules", "weaponBalance"))) { FormulaHelper.RegisterOverride(mod, "GetMeleeWeaponAnimTime", (Func <PlayerEntity, WeaponTypes, ItemHands, float>)GetMeleeWeaponAnimTime); } if (weaponMaterials) { FormulaHelper.RegisterOverride(mod, "CalculateWeaponToHit", (Func <DaggerfallUnityItem, int>)CalculateWeaponToHit); } if (equipDamage) { FormulaHelper.RegisterOverride(mod, "ApplyConditionDamageThroughPhysicalHit", (Func <DaggerfallUnityItem, DaggerfallEntity, int, bool>)ApplyConditionDamageThroughPhysicalHit); } if (enemyAppearance) { UpdateEnemyClassAppearances(); } if (purifyPot) { GameManager.Instance.EntityEffectBroker.RegisterEffectTemplate(new CureDiseaseRR(), true); } if (autoExtinguishLight) { PlayerEnterExit.OnTransitionDungeonExterior += OnTransitionToDungeonExterior_ExtinguishLight; } if (classicStrDmgBonus) { FormulaHelper.RegisterOverride(mod, "DamageModifier", (Func <int, int>)DamageModifier_classicDisplay); } if (variantNpcs) { PlayerEnterExit.OnTransitionInterior += OnTransitionToInterior_VariantNPCsprites; } // Initialise the FG master quest. if (!QuestListsManager.RegisterQuestList("RoleplayRealism")) { throw new Exception("Quest list name is already in use, unable to register RoleplayRealism quest list."); } RegisterFactionIds(); // Add additional data into the quest machine for the quests QuestMachine questMachine = GameManager.Instance.QuestMachine; questMachine.PlacesTable.AddIntoTable(placesTable); questMachine.FactionsTable.AddIntoTable(factionsTable); // Register the custom armor service Services.RegisterMerchantService(1022, CustomArmorService, "Custom Armor"); Debug.Log("Finished mod init: RoleplayRealism"); }
public static void InitMod(bool bedSleeping, bool archery, bool riding, bool encumbrance, bool bandaging, bool shipPorts, bool expulsion, bool climbing, bool weaponSpeed, bool equipDamage) { Debug.Log("Begin mod init: RoleplayRealism"); if (bedSleeping) { PlayerActivate.RegisterModelActivation(41000, BedActivation); PlayerActivate.RegisterModelActivation(41001, BedActivation); PlayerActivate.RegisterModelActivation(41002, BedActivation); } if (archery) { // Override adjust to hit and damage formulas FormulaHelper.RegisterOverride(mod, "AdjustWeaponHitChanceMod", (Func <DaggerfallEntity, DaggerfallEntity, int, int, DaggerfallUnityItem, int>)AdjustWeaponHitChanceMod); FormulaHelper.RegisterOverride(mod, "AdjustWeaponAttackDamage", (Func <DaggerfallEntity, DaggerfallEntity, int, int, DaggerfallUnityItem, int>)AdjustWeaponAttackDamage); } if (riding) { GameObject playerAdvGO = GameObject.Find("PlayerAdvanced"); if (playerAdvGO) { EnhancedRiding enhancedRiding = playerAdvGO.AddComponent <EnhancedRiding>(); if (enhancedRiding != null) { enhancedRiding.TerrainFollowing = mod.GetSettings().GetBool("EnhancedRiding", "followTerrainEnabled"); enhancedRiding.SetFollowTerrainSoftenFactor(mod.GetSettings().GetInt("EnhancedRiding", "followTerrainSoftenFactor")); } } } if (encumbrance) { EntityEffectBroker.OnNewMagicRound += EncumbranceEffects_OnNewMagicRound; } Mod lootRealism = ModManager.Instance.GetMod("LootRealism"); if (lootRealism == null && bandaging) { if (!DaggerfallUnity.Instance.ItemHelper.RegisterItemUseHander((int)UselessItems2.Bandage, UseBandage)) { Debug.LogWarning("RoleplayRealism: Unable to register bandage use handler."); } } if (shipPorts) { GameManager.Instance.TransportManager.ShipAvailiable = IsShipAvailiable; } if (expulsion) { // Register the TG/DB Guild classes if (!GuildManager.RegisterCustomGuild(FactionFile.GuildGroups.GeneralPopulace, typeof(ThievesGuildRR))) { throw new Exception("GuildGroup GeneralPopulace is already overridden, unable to register ThievesGuildRR guild class."); } if (!GuildManager.RegisterCustomGuild(FactionFile.GuildGroups.DarkBrotherHood, typeof(DarkBrotherhoodRR))) { throw new Exception("GuildGroup DarkBrotherHood is already overridden, unable to register DarkBrotherhoodRR guild class."); } } if (climbing) { FormulaHelper.RegisterOverride(mod, "CalculateClimbingChance", (Func <PlayerEntity, int, int>)CalculateClimbingChance); } if (weaponSpeed) { FormulaHelper.RegisterOverride(mod, "GetMeleeWeaponAnimTime", (Func <PlayerEntity, WeaponTypes, ItemHands, float>)GetMeleeWeaponAnimTime); } if (equipDamage) { FormulaHelper.RegisterOverride(mod, "ApplyConditionDamageThroughPhysicalHit", (Func <DaggerfallUnityItem, DaggerfallEntity, int, bool>)ApplyConditionDamageThroughPhysicalHit); } // Initialise the FG master quest. if (!QuestListsManager.RegisterQuestList("RoleplayRealism")) { throw new Exception("Quest list name is already in use, unable to register RoleplayRealism quest list."); } RegisterFactionIds(); // Add additional data into the quest machine for the quests QuestMachine questMachine = GameManager.Instance.QuestMachine; questMachine.PlacesTable.AddIntoTable(placesTable); questMachine.FactionsTable.AddIntoTable(factionsTable); // Register the custom armor service Services.RegisterMerchantService(1022, CustomArmorService, "Custom Armor"); Debug.Log("Finished mod init: RoleplayRealism"); }