// ------ public bool Enabled() { if (weaponID != E_WeaponID.None) { WeaponSettings settings = WeaponSettingsManager.Instance.Get(weaponID); return(!settings.DISABLED); } else if (itemID != E_ItemID.None) { ItemSettings settings = ItemSettingsManager.Instance.Get(itemID); return(!settings.DISABLED); } else if (upgradeID != E_UpgradeID.None) { UpgradeSettings settings = UpgradeSettingsManager.Instance.Get(upgradeID); return(!settings.DISABLED); } else if (perkID != E_PerkID.None) { PerkSettings settings = PerkSettingsManager.Instance.Get(perkID); return(!settings.DISABLED); } else { Error("Unknown type!"); } return(false); }
// ------ public bool IsDefault() { if (weaponID != E_WeaponID.None) { WeaponSettings settings = WeaponSettingsManager.Instance.Get(weaponID); return(settings.IsDefault()); } else if (itemID != E_ItemID.None) { ItemSettings settings = ItemSettingsManager.Instance.Get(itemID); return(settings.IsDefault()); } else if (upgradeID != E_UpgradeID.None) { UpgradeSettings settings = UpgradeSettingsManager.Instance.Get(upgradeID); return(settings.IsDefault()); } else if (perkID != E_PerkID.None) { PerkSettings settings = PerkSettingsManager.Instance.Get(perkID); return(settings.IsDefault()); } return(false); }
int ComparePerk(int otherId) { PerkSettings otherWs = PerkSettingsManager.Instance.Get((E_PerkID)(otherId)); PerkSettings myWs = PerkSettingsManager.Instance.Get((E_PerkID)(Id)); return(myWs.ID.CompareTo(otherWs.ID)); }
public PreviewItem(E_PerkID perkID) { if (perkID != E_PerkID.None) { PerkSettings settings = PerkSettingsManager.Instance.Get(perkID); m_ItemDescription = TextDatabase.instance[settings.Description]; m_ItemDescription = m_ItemDescription.Replace("@1", Mathf.Round((settings.Modifier - 1.0f) * 100).ToString()); if ((perkID == E_PerkID.Sprint) || (perkID == E_PerkID.SprintII) || (perkID == E_PerkID.SprintIII)) { m_ItemDescription = m_ItemDescription.Replace("@2", Mathf.Round(settings.Timer).ToString()); } } }
// IGUIPAGEPLAYERSTATS INTERFACE void IGuiPagePlayerStats.Refresh(PlayerPersistantInfo ppi) { PPIWeaponData weaponData; // collected values WeaponSettings weapon = ChooseWeapon(ppi, out weaponData); ItemSettings item = ChooseItem(ppi); PerkSettings perk = ChoosePerk(ppi); HatSettings hat = ChooseHat(ppi); SkinSettings skin = ChooseSkin(ppi); float totalShots = weaponData.StatsFire; float totalKills = weaponData.StatsKills; int killsTextId = totalKills == 1 ? 01160034 : 01160026; int computedAccurancy = totalShots > 0 ? Mathf.RoundToInt((weaponData.StatsHits / (float)totalShots) * 100) : 0; // weapon SetImage("WeaponImage", weapon != null ? weapon.ResearchWidget : null); SetText("WeaponName", weapon != null && weapon.Name != 0 ? TextDatabase.instance[weapon.Name] : ""); SetText("Kills_Enum", string.Format(TextDatabase.instance[killsTextId], totalKills)); SetText("Accuracy_Enum", computedAccurancy.ToString()); SetText("Headshots_Enum", "N/A" /*weaponData.StatsHeadShots.ToString()*/); SetText("Shotsfired_Enum", weaponData.StatsFire.ToString()); SetText("TotalTime_Enum", "N/A"); SetText("TotalTime_Units", TextDatabase.instance[01160014]); // item SetImage("ItemImage", item != null ? item.ShopWidget : null); SetText("ItemName", item != null && item.Name != 0 ? TextDatabase.instance[item.Name] : ""); // perk SetImage("PerkImage", perk != null ? perk.ShopWidget : null); SetText("PerkName", perk != null && perk.Name != 0 ? TextDatabase.instance[perk.Name] : ""); // hat SetImage("HatImage", hat != null ? hat.ShopWidget : null); SetText("HatName", hat != null && hat.Name != 0 ? TextDatabase.instance[hat.Name] : ""); // skin SetImage("SkinImage", skin != null ? skin.ScrollerWidget : null); SetText("SkinName", skin != null && skin.Name != 0 ? TextDatabase.instance[skin.Name] : ""); }
// ------ void InitData() { if (weaponID != E_WeaponID.None) { WeaponSettings settings = WeaponSettingsManager.Instance.Get(weaponID); m_ItemName = settings.Name; m_ItemDescription = settings.Description; m_IsPriceGold = settings.GoldCost > 0; m_Price = m_IsPriceGold ? settings.GoldCost : settings.MoneyCost; m_Image = settings.ResearchWidget; m_GUID = settings.GUID; } else if (itemID != E_ItemID.None) { ItemSettings settings = ItemSettingsManager.Instance.Get(itemID); m_ItemName = settings.Name; m_ItemDescription = settings.Description; m_IsPriceGold = settings.GoldCost > 0; m_Price = m_IsPriceGold ? settings.GoldCost : settings.MoneyCost; m_Image = settings.ResearchWidget; m_GUID = settings.GUID; } else if (upgradeID != E_UpgradeID.None) { UpgradeSettings settings = UpgradeSettingsManager.Instance.Get(upgradeID); m_ItemName = settings.Name; m_ItemDescription = settings.Description; m_IsPriceGold = settings.GoldCost > 0; m_Price = m_IsPriceGold ? settings.GoldCost : settings.MoneyCost; m_Image = settings.ResearchWidget; m_GUID = settings.GUID; } else if (perkID != E_PerkID.None) { PerkSettings settings = PerkSettingsManager.Instance.Get(perkID); m_ItemName = settings.Name; m_ItemDescription = settings.Description; m_IsPriceGold = settings.GoldCost > 0; m_Price = m_IsPriceGold ? settings.GoldCost : settings.MoneyCost; m_Image = settings.ResearchWidget; m_GUID = settings.GUID; } else { Error("Unknown type!"); } }
// ------ public string GetDescription() { string text; text = TextDatabase.instance[m_ItemDescription]; if (perkID != E_PerkID.None) { PerkSettings settings = PerkSettingsManager.Instance.Get(perkID); text = text.Replace("@1", Mathf.Round((settings.Modifier - 1.0f) * 100).ToString()); if ((perkID == E_PerkID.Sprint) || (perkID == E_PerkID.SprintII) || (perkID == E_PerkID.SprintIII)) { text = text.Replace("@2", Mathf.Round(settings.Timer).ToString()); } } return(text); }
void UpdatePerk() { if (Perk.id == E_PerkID.None) { return; } bool active = true; bool countdown = false; switch (Perk.id) { case E_PerkID.Sprint: case E_PerkID.SprintII: case E_PerkID.SprintIII: if (Owner.BlackBoard.MotionType == E_MotionType.Sprint) { countdown = true; } else { active = false; } break; } if (countdown) { Perk.Timer = Mathf.Max(0, Perk.Timer - Time.deltaTime); } if (active) { return; } PerkSettings settings = PerkSettingsManager.Instance.Get(Perk.id); if (Perk.Timer < settings.Timer) { Perk.Timer = Mathf.Min(Perk.Timer + settings.Recharge * Time.deltaTime, settings.Timer); } }
void Activate() { PlayerPersistantInfo ppi = PPIManager.Instance.GetPPI(Owner.NetworkView.owner); Item g = null; foreach (PPIItemData d in ppi.EquipList.Items) { if (d.ID == E_ItemID.None) { continue; } g = new Item(ppi, Owner, d.ID); Gadgets.Add(d.ID, g); } if (ppi.EquipList.Perk != E_PerkID.None) { PerkSettings settings = PerkSettingsManager.Instance.Get(ppi.EquipList.Perk); Perk.id = settings.ID; Perk.Timer = settings.Timer; Perk.Recharge = settings.Recharge; Perk.CipheredModifier = settings.Modifier; //ciphered accessor; Perk.Modifier = settings.Modifier; // Debug.Log ("PERK: id=" + Perk.id + ", settings.Modifier=" + settings.Modifier + ", m_CipheredModifier=" + Perk.m_CipheredModifier + ", CipheredModifier=" + Perk.CipheredModifier + ", Cipher=" + Perk.Cipher1); //'HACK': this is because we don't want to change the execution order (to: 1) ComponentGadgets 2) AgentHuman) Owner.BlackBoard.Health = Owner.BlackBoard.RealMaxHealth; //need to reset the Health, because it can be modified by Perks which were not available at BlackBoard.Reset() time } if (Owner.IsOwner) { GuiHUD.Instance.CreateGadgetInventory(ppi); } if (Owner.debugGame) { if (Gadgets.Count > 0) { string s = PPIManager.Instance.GetPPI(Owner.NetworkView.owner).Name + " : created gadgets - "; foreach (KeyValuePair <E_ItemID, Item> pair in Gadgets) { s += TextDatabase.instance[pair.Value.Settings.Name]; } if (Game.Instance.GameLog) { Debug.Log(s); } } else if (Game.Instance.GameLog) { Debug.Log(PPIManager.Instance.GetPPI(Owner.NetworkView.owner).Name + " : created no gadgets"); } if (Game.Instance.GameLog) { Debug.Log("Current Perk: " + Perk); } } }
//Funkce pro fixnuti equipu na ppi //Projdeme casti equipu ktere by nemuseli byt validni a vytvorime seznam akci ktere je treba vykonat aby byl zase v poradku. //Pokud je vse v poradku, vraci null, jinak serial cloud action ktera se ma provest public static BaseCloudAction ValidateEquip() { List <BaseCloudAction> outActions = new List <BaseCloudAction>(); PlayerPersistantInfo ppi = ShopDataBridge.Instance.PPI; UnigueUserID userID = CloudUser.instance.authenticatedUserID; //weapons: //bool anyWeaponEquipped = false; foreach (PPIWeaponData w in ppi.EquipList.Weapons) { //ignoruj prazdna id if (w.ID == E_WeaponID.None) { continue; } //pokud je item zakazany, nebo ma locknuty slot, odstran ho z equipu. WeaponSettings s = WeaponSettingsManager.Instance.Get(w.ID); if (s.DISABLED || ShopDataBridge.Instance.IsWeaponSlotLocked(w.EquipSlotIdx)) { //unequip it outActions.Add(new SlotEquipAction(userID, s.GUID, w.EquipSlotIdx, false)); continue; } // anyWeaponEquipped = true; } /* we don't need this functionality right now, * because we don't allow player to spawn without any weapon now * //pokud nemame equpnutou zadnou zbran, pridej nejakou do prvniho slotu * if(!anyWeaponEquipped) * { * List<ShopItemId> ownedWeapons = ShopDataBridge.Instance.GetOwnedWeapons(); * if(ownedWeapons.Count > 0) * { * int guid = ShopDataBridge.Instance.GetShopItemGUID(ownedWeapons[0]); * outActions.Add(new SlotEquipAction(userID, guid, 0, true )); * } * }*/ //items: foreach (PPIItemData w in ppi.EquipList.Items) { //ignoruj prazdna id if (w.ID == E_ItemID.None) { continue; } //pokud je item zakazany, nebo ma locknuty slot, odstran ho z equipu. ItemSettings s = ItemSettingsManager.Instance.Get(w.ID); if (s.DISABLED || ShopDataBridge.Instance.IsItemSlotLocked(w.EquipSlotIdx)) { //unequip it outActions.Add(new SlotEquipAction(userID, s.GUID, w.EquipSlotIdx, false)); continue; } //pokud mame od itemu v inventari lepsi nebo naopak horsi verzi, updatni jej ve slotu. E_ItemID bestVersion = ShopDataBridge.Instance.FindBestItemUpgrade(w.ID); if (w.ID != bestVersion) { //replace it with actual version from inventory int bestVersionGUID = ItemSettingsManager.Instance.Get(bestVersion).GUID; outActions.Add(new SlotEquipAction(userID, bestVersionGUID, w.EquipSlotIdx, true)); continue; } } //perk: if (ppi.EquipList.Perk != E_PerkID.None) { E_PerkID perk = ppi.EquipList.Perk; E_PerkID bestVersion = ShopDataBridge.Instance.FindBestPerkUpgrade(ppi.EquipList.Perk); //pokud je zakazany, odstran jej ze slotu PerkSettings s = PerkSettingsManager.Instance.Get(perk); if (s.DISABLED) { //unequip it outActions.Add(new SlotEquipAction(userID, s.GUID, 0, false)); } else if (perk != bestVersion) { //replace it with actual version from inventory int bestVersionGUID = PerkSettingsManager.Instance.Get(bestVersion).GUID; outActions.Add(new SlotEquipAction(userID, bestVersionGUID, 0, true)); } } //skins: { ShopItemId currSkin = new ShopItemId((int)ppi.EquipList.Outfits.Skin, GuiShop.E_ItemType.Skin); List <ShopItemId> ownedSkins = ShopDataBridge.Instance.GetOwnedSkins(); if (!ownedSkins.Contains(currSkin)) { //Debug.Log("Equiped skin " + currSkin + " is not in inventory, switching to: " + ( (ownedSkins.Count > 0) ? ownedSkins[0].ToString() : "-none-") ); if (ownedSkins.Count > 0) { //equipnuty skin neni v inventari, vyber misto neho nejaky jiny ownedSkins.Sort(); int guid = ShopDataBridge.Instance.GetShopItemGUID(ownedSkins[0]); outActions.Add(new SlotEquipAction(userID, guid, 0, true)); } else { Debug.LogError("No skins in inventory!"); } } } //upgrades: { List <PPIUpgradeList.UpgradeData> upgs = ppi.Upgrades.Upgrades; if (upgs.Find(u => u.ID == E_UpgradeID.ItemSlot2).ID != E_UpgradeID.ItemSlot2) { int guid = ShopDataBridge.Instance.GetShopItemGUID(new ShopItemId((int)E_UpgradeID.ItemSlot2, GuiShop.E_ItemType.Upgrade)); outActions.Add(new ShopBuyAction(userID, guid)); } if (upgs.Find(u => u.ID == E_UpgradeID.WeaponSlot2).ID != E_UpgradeID.WeaponSlot2) { int guid = ShopDataBridge.Instance.GetShopItemGUID(new ShopItemId((int)E_UpgradeID.WeaponSlot2, GuiShop.E_ItemType.Upgrade)); outActions.Add(new ShopBuyAction(userID, guid)); } } //pokud jsme neco zmenili, updatuj na zaver PPI if (outActions.Count > 0) { outActions.Add(new FetchPlayerPersistantInfo(userID)); BaseCloudAction resultAction = new CloudActionSerial(userID, BaseCloudAction.NoTimeOut, outActions.ToArray()); return(resultAction); } else { return(null); } }