コード例 #1
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (cmbShop.SelectedIndex > -1)
            {
                mMyCommand.ShopId = ShopBase.IdFromList(cmbShop.SelectedIndex);
            }

            mEventEditor.FinishCommandEdit();
        }
コード例 #2
0
 public void Setup(ISaleable _item, ShopBase _shop)
 {
     Item                = _item;
     IconImage.sprite    = _item.Icon;
     NameTxt.text        = _item.Name;
     DescriptionTxt.text = _item.Description();
     PriceTxt.text       = _item.Price.ToString();
     BuyButtonData.GetComponent <MyBuyButton3DData>().SetupButtonData(_shop, _item, BuyButton);
 }
コード例 #3
0
 public EventCommandOpenShop(OpenShopCommand refCommand, FrmEvent editor)
 {
     InitializeComponent();
     mMyCommand   = refCommand;
     mEventEditor = editor;
     InitLocalization();
     cmbShop.Items.Clear();
     cmbShop.Items.AddRange(ShopBase.Names);
     cmbShop.SelectedIndex = ShopBase.ListIndex(mMyCommand.ShopId);
 }
コード例 #4
0
 float GetCost(ShopBase shopBase)
 {
     if (shopBase.accumulation)
     {
         return(shopBase.cost * (shopBase.purchased + 1));
     }
     else
     {
         return(shopBase.cost);
     }
 }
コード例 #5
0
 protected override void GameObjectUpdatedDelegate(GameObjectType type)
 {
     if (type == GameObjectType.Shop)
     {
         InitEditor();
         if (mEditorItem != null && !ShopBase.Lookup.Values.Contains(mEditorItem))
         {
             mEditorItem = null;
             UpdateEditor();
         }
     }
 }
コード例 #6
0
        private void lstShops_AfterSelect(object sender, TreeViewEventArgs e)
        {
            if (mChangingName)
            {
                return;
            }

            if (lstShops.SelectedNode == null || lstShops.SelectedNode.Tag == null)
            {
                return;
            }

            mEditorItem = ShopBase.Get((Guid)lstShops.SelectedNode.Tag);
            UpdateEditor();
        }
コード例 #7
0
 private void AssignEditorItem(Guid id)
 {
     mEditorItem = ShopBase.Get(id);
     UpdateEditor();
 }
コード例 #8
0
        //GameObjectPacket
        private static void HandlePacket(GameObjectPacket packet)
        {
            var id      = packet.Id;
            var deleted = packet.Deleted;
            var json    = "";

            if (!packet.Deleted)
            {
                json = packet.Data;
            }

            switch (packet.Type)
            {
            case GameObjectType.Animation:
                if (deleted)
                {
                    var anim = AnimationBase.Get(id);
                    anim.Delete();
                }
                else
                {
                    var anim = new AnimationBase(id);
                    anim.Load(json);
                    try
                    {
                        AnimationBase.Lookup.Set(id, anim);
                    }
                    catch (Exception exception)
                    {
                        Log.Error($"Another mystery NPE. [Lookup={AnimationBase.Lookup}]");
                        if (exception.InnerException != null)
                        {
                            Log.Error(exception.InnerException);
                        }

                        Log.Error(exception);
                        Log.Error($"{nameof(id)}={id},{nameof(anim)}={anim}");

                        throw;
                    }
                }

                break;

            case GameObjectType.Class:
                if (deleted)
                {
                    var cls = ClassBase.Get(id);
                    cls.Delete();
                }
                else
                {
                    var cls = new ClassBase(id);
                    cls.Load(json);
                    ClassBase.Lookup.Set(id, cls);
                }

                break;

            case GameObjectType.Item:
                if (deleted)
                {
                    var itm = ItemBase.Get(id);
                    itm.Delete();
                }
                else
                {
                    var itm = new ItemBase(id);
                    itm.Load(json);
                    ItemBase.Lookup.Set(id, itm);
                }

                break;

            case GameObjectType.Npc:
                if (deleted)
                {
                    var npc = NpcBase.Get(id);
                    npc.Delete();
                }
                else
                {
                    var npc = new NpcBase(id);
                    npc.Load(json);
                    NpcBase.Lookup.Set(id, npc);
                }

                break;

            case GameObjectType.Projectile:
                if (deleted)
                {
                    var proj = ProjectileBase.Get(id);
                    proj.Delete();
                }
                else
                {
                    var proj = new ProjectileBase(id);
                    proj.Load(json);
                    ProjectileBase.Lookup.Set(id, proj);
                }

                break;

            case GameObjectType.Quest:
                if (deleted)
                {
                    var qst = QuestBase.Get(id);
                    qst.Delete();
                }
                else
                {
                    var qst = new QuestBase(id);
                    qst.Load(json);
                    foreach (var tsk in qst.Tasks)
                    {
                        qst.OriginalTaskEventIds.Add(tsk.Id, tsk.CompletionEventId);
                    }

                    QuestBase.Lookup.Set(id, qst);
                }

                break;

            case GameObjectType.Resource:
                if (deleted)
                {
                    var res = ResourceBase.Get(id);
                    res.Delete();
                }
                else
                {
                    var res = new ResourceBase(id);
                    res.Load(json);
                    ResourceBase.Lookup.Set(id, res);
                }

                break;

            case GameObjectType.Shop:
                if (deleted)
                {
                    var shp = ShopBase.Get(id);
                    shp.Delete();
                }
                else
                {
                    var shp = new ShopBase(id);
                    shp.Load(json);
                    ShopBase.Lookup.Set(id, shp);
                }

                break;

            case GameObjectType.Spell:
                if (deleted)
                {
                    var spl = SpellBase.Get(id);
                    spl.Delete();
                }
                else
                {
                    var spl = new SpellBase(id);
                    spl.Load(json);
                    SpellBase.Lookup.Set(id, spl);
                }

                break;

            case GameObjectType.CraftTables:
                if (deleted)
                {
                    var cft = CraftingTableBase.Get(id);
                    cft.Delete();
                }
                else
                {
                    var cft = new CraftingTableBase(id);
                    cft.Load(json);
                    CraftingTableBase.Lookup.Set(id, cft);
                }

                break;

            case GameObjectType.Crafts:
                if (deleted)
                {
                    var cft = CraftBase.Get(id);
                    cft.Delete();
                }
                else
                {
                    var cft = new CraftBase(id);
                    cft.Load(json);
                    CraftBase.Lookup.Set(id, cft);
                }

                break;

            case GameObjectType.Map:
                //Handled in a different packet
                break;

            case GameObjectType.Event:
                var wasCommon = false;
                if (deleted)
                {
                    var evt = EventBase.Get(id);
                    wasCommon = evt.CommonEvent;
                    evt.Delete();
                }
                else
                {
                    var evt = new EventBase(id);
                    evt.Load(json);
                    wasCommon = evt.CommonEvent;
                    EventBase.Lookup.Set(id, evt);
                }

                if (!wasCommon)
                {
                    return;
                }

                break;

            case GameObjectType.PlayerVariable:
                if (deleted)
                {
                    var pvar = PlayerVariableBase.Get(id);
                    pvar.Delete();
                }
                else
                {
                    var pvar = new PlayerVariableBase(id);
                    pvar.Load(json);
                    PlayerVariableBase.Lookup.Set(id, pvar);
                }

                break;

            case GameObjectType.ServerVariable:
                if (deleted)
                {
                    var svar = ServerVariableBase.Get(id);
                    svar.Delete();
                }
                else
                {
                    var svar = new ServerVariableBase(id);
                    svar.Load(json);
                    ServerVariableBase.Lookup.Set(id, svar);
                }

                break;

            case GameObjectType.Tileset:
                var obj = new TilesetBase(id);
                obj.Load(json);
                TilesetBase.Lookup.Set(id, obj);
                if (Globals.HasGameData && !packet.AnotherFollowing)
                {
                    GameContentManager.LoadTilesets();
                }

                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            GameObjectUpdatedDelegate?.Invoke(packet.Type);
        }
コード例 #9
0
        public void InitEditor()
        {
            var selectedId  = Guid.Empty;
            var folderNodes = new Dictionary <string, TreeNode>();

            if (lstShops.SelectedNode != null && lstShops.SelectedNode.Tag != null)
            {
                selectedId = (Guid)lstShops.SelectedNode.Tag;
            }

            lstShops.Nodes.Clear();

            //Collect folders
            var mFolders = new List <string>();

            foreach (var itm in ShopBase.Lookup)
            {
                if (!string.IsNullOrEmpty(((ShopBase)itm.Value).Folder) &&
                    !mFolders.Contains(((ShopBase)itm.Value).Folder))
                {
                    mFolders.Add(((ShopBase)itm.Value).Folder);
                    if (!mKnownFolders.Contains(((ShopBase)itm.Value).Folder))
                    {
                        mKnownFolders.Add(((ShopBase)itm.Value).Folder);
                    }
                }
            }

            mFolders.Sort();
            mKnownFolders.Sort();
            cmbFolder.Items.Clear();
            cmbFolder.Items.Add("");
            cmbFolder.Items.AddRange(mKnownFolders.ToArray());

            lstShops.Sorted = !btnChronological.Checked;

            if (!btnChronological.Checked && !CustomSearch())
            {
                foreach (var folder in mFolders)
                {
                    var node = lstShops.Nodes.Add(folder);
                    node.ImageIndex         = 0;
                    node.SelectedImageIndex = 0;
                    folderNodes.Add(folder, node);
                }
            }

            foreach (var itm in ShopBase.ItemPairs)
            {
                var node = new TreeNode(itm.Value);
                node.Tag                = itm.Key;
                node.ImageIndex         = 1;
                node.SelectedImageIndex = 1;

                var folder = ShopBase.Get(itm.Key).Folder;
                if (!string.IsNullOrEmpty(folder) && !btnChronological.Checked && !CustomSearch())
                {
                    var folderNode = folderNodes[folder];
                    folderNode.Nodes.Add(node);
                    if (itm.Key == selectedId)
                    {
                        folderNode.Expand();
                    }
                }
                else
                {
                    lstShops.Nodes.Add(node);
                }

                if (CustomSearch())
                {
                    if (!node.Text.ToLower().Contains(txtSearch.Text.ToLower()))
                    {
                        node.Remove();
                    }
                }

                if (itm.Key == selectedId)
                {
                    lstShops.SelectedNode = node;
                }
            }

            var selectedNode = lstShops.SelectedNode;

            if (!btnChronological.Checked)
            {
                lstShops.Sort();
            }

            lstShops.SelectedNode = selectedNode;
            foreach (var node in mExpandedFolders)
            {
                if (folderNodes.ContainsKey(node))
                {
                    folderNodes[node].Expand();
                }
            }
        }
コード例 #10
0
ファイル: ShopManager.cs プロジェクト: HOWLYYY/OOP
 public ShopManager()
 {
     sb = new ShopBase();
     ib = new ItemBase();
 }
コード例 #11
0
    void Update()
    {
        RaycastHit hit;

        if (Physics.Raycast(shootPoint.position, shootPoint.forward, out hit, detectRange))
        {
            ShopBase shopBase = hit.transform.GetComponent <ShopBase>();

            if (shopBase == null)
            {
                shopText.text = "";
                return;
            }

            if (shopBase is AmmoShop)
            {
                shopText.text = "Press F to buy ammo";
            }
            else if (shopBase is PortableMagnumShop)
            {
                shopText.text = "Press F to buy Portable Magnum";
            }
            else if (shopBase is Compact9mmShop)
            {
                shopText.text = "Press F to buy Compact 9mm";
            }
            else if (shopBase is UMP45Shop)
            {
                shopText.text = "Press F to buy UMP45";
            }
            else if (shopBase is DefenderShotgunShop)
            {
                shopText.text = "Press F to buy Defender Shotgun";
            }
            else if (shopBase is StovRifleShop)
            {
                shopText.text = "Press F to buy Stov Rifle";
            }
            else if (shopBase is DamageUpgrade)
            {
                shopText.text = "Press F to buy Damage Upgrade";
            }
            else if (shopBase is FasterReloadUpgrade)
            {
                shopText.text = "Press F to buy Faster Reload Upgrade";
            }

            shopText.text += " (" + GetCost(shopBase) + "$)";

            if (Input.GetKeyDown(KeyCode.F))
            {
                if (cashSystem.cash < GetCost(shopBase))
                {
                    print("NOT ENOUGH CASH");
                    audioSource.PlayOneShot(errorSound);
                    return;
                }

                bool purchased = false;

                if (shopBase is AmmoShop)
                {
                    purchased = BuyAmmo();
                }
                else if (shopBase is PortableMagnumShop)
                {
                    purchased = BuyWeapon(Weapon.PortableMagnum);
                }
                else if (shopBase is Compact9mmShop)
                {
                    purchased = BuyWeapon(Weapon.Compact9mm);
                }
                else if (shopBase is UMP45Shop)
                {
                    purchased = BuyWeapon(Weapon.UMP45);
                }
                else if (shopBase is DefenderShotgunShop)
                {
                    purchased = BuyWeapon(Weapon.DefenderShotgun);
                }
                else if (shopBase is StovRifleShop)
                {
                    purchased = BuyWeapon(Weapon.StovRifle);
                }
                else if (shopBase is UpgradeBase)
                {
                    WeaponBase weaponBase = WeaponManager.instance.GetCurrentWeaponObject().GetComponent <WeaponBase>();

                    if (shopBase is DamageUpgrade)
                    {
                        purchased = BuyUpgrade(Upgrade.Damage, weaponBase);
                    }
                    else if (shopBase is FasterReloadUpgrade)
                    {
                        purchased = BuyUpgrade(Upgrade.FasterReload, weaponBase);
                    }
                }

                if (purchased)
                {
                    audioSource.PlayOneShot(buySound);
                    cashSystem.cash -= GetCost(shopBase);

                    if (shopBase is UpgradeBase)
                    {
                        shopBase.purchased++;
                    }
                }
                else
                {
                    audioSource.PlayOneShot(errorSound);
                }
            }
        }
        else
        {
            shopText.text = "";
            return;
        }
    }
コード例 #12
0
 private static string GetCommandText(OpenShopCommand command, MapInstance map)
 {
     return(Strings.EventCommandList.openshop.ToString(ShopBase.GetName(command.ShopId)));
 }