private void HandleBlueprintListPageResponse(int responseID) { DialogResponse response = GetResponseByID("BlueprintListPage", responseID); int blueprintID = (int)response.CustomData; if (blueprintID == -1) { ChangePage("CraftCategoriesPage"); return; } var model = _craft.GetPlayerCraftingData(GetPC()); model.Blueprint = _craft.GetBlueprintByID(blueprintID); model.BlueprintID = blueprintID; model.PlayerSkillRank = _skill.GetPCSkillRank(GetPC(), model.Blueprint.SkillID); model.MainMinimum = model.Blueprint.MainMinimum; model.MainMaximum = model.Blueprint.MainMaximum; model.SecondaryMinimum = model.Blueprint.SecondaryMinimum; model.SecondaryMaximum = model.Blueprint.SecondaryMaximum; model.TertiaryMinimum = model.Blueprint.TertiaryMinimum; model.TertiaryMaximum = model.Blueprint.TertiaryMaximum; string header = _craft.BuildBlueprintHeader(GetPC(), blueprintID, false); SetPageHeader("BlueprintDetailsPage", header); ChangePage("BlueprintDetailsPage"); }
private void HandleBlueprintListPageResponse(int responseID) { Model vm = GetDialogCustomData <Model>(); DialogResponse response = GetResponseByID("BlueprintListPage", responseID); int blueprintID = (int)response.CustomData[string.Empty]; if (blueprintID == -1) { if (vm.Mode == 1) { ChangePage("CraftCategoriesPage"); } else { ChangePage("ConstructionCategoriesPage"); } return; } string header; if (vm.Mode == 1) { header = _craft.BuildBlueprintHeader(GetPC(), blueprintID); } else { header = _structure.BuildMenuHeader(blueprintID); } SetPageHeader("BlueprintDetailsPage", header); ChangePage("BlueprintDetailsPage"); }
public bool Run(params object[] args) { NWPlaceable device = NWPlaceable.Wrap(Object.OBJECT_SELF); NWPlayer oPC = NWPlayer.Wrap(_.GetLastOpenedBy()); int blueprintSelected = device.GetLocalInt("CRAFT_BLUEPRINT_ID"); _.CreateItemOnObject("cft_choose_bp", device.Object); if (blueprintSelected > 0) { CraftBlueprint entity = _craft.GetBlueprintByID(blueprintSelected); NWItem menuItem = NWItem.Wrap(_.CreateItemOnObject("cft_craft_item", device.Object)); menuItem.Name = "Craft Item: " + entity.ItemName; oPC.SendMessage(_craft.BuildBlueprintHeader(oPC, blueprintSelected)); } return(true); }
private void LoadBlueprintPage(int blueprintID) { SetPageHeader("BlueprintPage", _craft.BuildBlueprintHeader(GetPC(), blueprintID)); GetResponseByID("BlueprintPage", 1).CustomData[string.Empty] = blueprintID; GetResponseByID("BlueprintPage", 2).CustomData[string.Empty] = blueprintID; }
public override void Initialize() { ToggleBackButton(false); var model = _craft.GetPlayerCraftingData(GetPC()); var device = GetDevice(); // Entering the conversation for the first time from the blueprint selection menu. if (!model.IsInitialized) { model.IsInitialized = true; model.Blueprint = _craft.GetBlueprintByID(model.BlueprintID); model.PlayerSkillRank = _skill.GetPCSkillRank(GetPC(), model.Blueprint.SkillID); switch ((SkillType)model.Blueprint.SkillID) { case SkillType.Armorsmith: model.PlayerPerkLevel = _perk.GetPCPerkLevel(GetPC(), PerkType.ArmorBlueprints); model.EfficiencyLevel = _perk.GetPCPerkLevel(GetPC(), PerkType.ArmorsmithEfficiency); model.OptimizationLevel = _perk.GetPCPerkLevel(GetPC(), PerkType.ArmorsmithOptimization); break; case SkillType.Engineering: model.PlayerPerkLevel = _perk.GetPCPerkLevel(GetPC(), PerkType.EngineeringBlueprints); model.EfficiencyLevel = _perk.GetPCPerkLevel(GetPC(), PerkType.EngineeringEfficiency); model.OptimizationLevel = _perk.GetPCPerkLevel(GetPC(), PerkType.EngineeringOptimization); break; case SkillType.Weaponsmith: model.PlayerPerkLevel = _perk.GetPCPerkLevel(GetPC(), PerkType.WeaponBlueprints); model.EfficiencyLevel = _perk.GetPCPerkLevel(GetPC(), PerkType.WeaponsmithEfficiency); model.OptimizationLevel = _perk.GetPCPerkLevel(GetPC(), PerkType.WeaponsmithOptimization); break; case SkillType.Fabrication: model.PlayerPerkLevel = _perk.GetPCPerkLevel(GetPC(), PerkType.FabricationBlueprints); model.EfficiencyLevel = _perk.GetPCPerkLevel(GetPC(), PerkType.FabricationEfficiency); model.OptimizationLevel = _perk.GetPCPerkLevel(GetPC(), PerkType.FabricationOptimization); break; case SkillType.Medicine: model.PlayerPerkLevel = _perk.GetPCPerkLevel(GetPC(), PerkType.MedicalBlueprints); model.EfficiencyLevel = _perk.GetPCPerkLevel(GetPC(), PerkType.MedicineEfficiency); model.OptimizationLevel = _perk.GetPCPerkLevel(GetPC(), PerkType.MedicineOptimization); break; default: model.PlayerPerkLevel = 0; break; } GetDevice().IsLocked = true; model.MainMinimum = model.Blueprint.MainMinimum - model.EfficiencyLevel; model.SecondaryMinimum = model.Blueprint.SecondaryMinimum - model.EfficiencyLevel; model.TertiaryMinimum = model.Blueprint.TertiaryMinimum - model.EfficiencyLevel; model.MainMaximum = model.Blueprint.MainMaximum + model.OptimizationLevel; model.SecondaryMaximum = model.Blueprint.SecondaryMaximum > 0 ? model.Blueprint.SecondaryMaximum + model.OptimizationLevel : 0; model.TertiaryMaximum = model.Blueprint.TertiaryMaximum > 0 ? model.Blueprint.TertiaryMaximum + model.OptimizationLevel : 0; if (model.MainMinimum <= 0) model.MainMinimum = 1; if (model.SecondaryMinimum <= 0 && model.Blueprint.SecondaryMinimum > 0) model.SecondaryMinimum = 1; if (model.TertiaryMinimum <= 0 && model.Blueprint.TertiaryMinimum > 0) model.TertiaryMinimum = 1; } // Otherwise returning from accessing the device's inventory. else { model.Access = CraftingAccessType.None; _.SetEventScript(device.Object, EVENT_SCRIPT_PLACEABLE_ON_USED, "jvm_script_1"); _.SetEventScript(device.Object, EVENT_SCRIPT_PLACEABLE_ON_OPEN, string.Empty); _.SetEventScript(device.Object, EVENT_SCRIPT_PLACEABLE_ON_CLOSED, string.Empty); _.SetEventScript(device.Object, EVENT_SCRIPT_PLACEABLE_ON_INVENTORYDISTURBED, string.Empty); } SetPageHeader("MainPage", _craft.BuildBlueprintHeader(GetPC(), model.BlueprintID, true)); BuildMainPageOptions(); }