Inheritance: MonoBehaviour
示例#1
0
    /// <summary>
    /// Craftea el objeto que estuviera en cola.
    /// </summary>
    public void Craftear(Estructura build, GameAction action)
    {
        if (ComprobarAcceso(action) || build == null)
        {
            return;
        }

        Crafteable craftTable = build.GetComponent <Crafteable>();

        if (craftTable == null)
        {
            Debug.LogWarning("Craftear::ActionMethods error: Eso no es mesa de crafteo...");
            return;
        }

        Craft crafteo = craftTable.GetThisCraft();

        if (crafteo == null)
        {
            return;
        }

        foreach (ResourceInfo info in crafteo.requisitos)
        {
            action.worker.inventario.RemoveResource(info.type, info.quantity);
        }
        action.worker.inventario.AddResource(crafteo.obtencion.type, crafteo.obtencion.quantity);

        craftTable.FinishCraft();

        if (craftTable.HasMoreCrafts())
        {
            actions.CreateAction(action, action.worker, true, action.prioridad, craftTable.GetThisCraft().requisitos);
        }
    }
示例#2
0
        void WriteCraftToHistory()
        {
            Craft craft = new Craft(_resultPrice, _outcomePrice, _resultFloat, DateTime.Now.Date.ToShortDateString());

            if (steamItemOverlayURL == "")
            {
                CraftHistoryHandler.AddCraft(craft);
                CraftHistoryHandler.Save();
            }
            else if (IsSteamOverlayURLValid(steamItemOverlayURL))
            {
                if (!WebController.CheckConnection())
                {
                    MessageBox.Show((string)Application.Current.Resources["NetworkDisable"]);
                    return;
                }
                Scin scin = JsonSerializer.Deserialize <Scin>(WebController.GetItemProp(steamItemOverlayURL));
                craft.imageUrl    = scin.imageurl;
                craft.outcomeName = scin.full_item_name;
                craft.rarity      = scin.rarity;
                CraftHistoryHandler.AddCraft(craft);
                CraftHistoryHandler.Save();
            }
            else
            {
                if (MessageBoxResult.Yes.Equals(MessageBox.Show((string)Application.Current.Resources["ErrorSteamOverlayURLWrongTitle"], (string)Application.Current.Resources["ErrorSteamOverlayURLWrongText"], MessageBoxButton.YesNo, MessageBoxImage.Error)))
                {
                    CraftHistoryHandler.AddCraft(craft);
                    CraftHistoryHandler.Save();
                }
            }
        }
示例#3
0
    void CraftingFU()
    {
        string[,] cells = new string[3, 3];
        string curCraftInput = "";

        for (int v = 0; v < 3; v++)
        {
            for (int v1 = 0; v1 < 3; v1++)
            {
                curCraftInput += (cells[v, v1] = craftInput[v, v1].text);
            }
        }
        if (curCraftInput != lastCraftInput)
        {
            for (int v = 0; v < 3; v++)
            {
                for (int v1 = 0; v1 < 3; v1++)
                {
                    images[v, v1].material.SetTextureOffset("_MainTex", EntityId.ByName(craftInput[v, v1].text).textures[0] * images[v, v1].material.GetTextureScale("_MainTex"));
                }
            }
            craftResult.text = string.Join(Craft.spl0 + "", Craft.Do(cells));
            craftImage.material.SetTextureOffset("_MainTex", EntityId.ByName(craftResult.text.Split(Craft.spl0)[0]).textures[0] * craftImage.material.GetTextureScale("_MainTex"));
        }
        lastCraftInput = curCraftInput;
    }
示例#4
0
 public bool PurchasePropellent(float propellent_mass, Market market)
 {
     return(market.Purchase(Craft.GetOwner(),
                            Craft.Cargo,
                            Propellent,
                            PropellentMassToUnits(propellent_mass)));
 }
示例#5
0
        public override PlayerDialog SetUp(uint player)
        {
            var model = new Model();

            // This menu can be entered one of two ways:
            //    1.) From the player's rest menu.
            //    2.) From using a crafting fabricator.
            // If the second event happens, we need to skip over the first page.
            var state = Craft.GetPlayerCraftingState(player);

            model.SelectedSkill = state.DeviceSkillType;

            if (model.SelectedSkill != SkillType.Invalid)
            {
                model.IsFabricator = true;
            }

            var builder = new DialogBuilder()
                          .WithDataModel(model)
                          .AddBackAction(Back)
                          .AddEndAction(End);

            if (!model.IsFabricator)
            {
                builder.AddPage(MainPageId, MainPageInit);
            }

            builder.AddPage(CategoryPageId, CategoryPageInit)
            .AddPage(RecipeListPageId, RecipeListPageInit)
            .AddPage(RecipePageId, RecipePageInit);

            return(builder.Build());
        }
示例#6
0
        public Game[] getGameList(Craft playerCraft, Craft opponentCraft, Deck playerDeck, Deck opponentDeck, Mode mode, Turn turn)
        {
            try
            {
                List <Game> matchingGames = new List <Game>();
                foreach (Game game in mDataBase.games)
                {
                    if ((playerCraft == Craft.All || game.playerCraft == playerCraft) &&
                        (opponentCraft == Craft.All || game.opponentCraft == opponentCraft) &&
                        (playerDeck == null || game.playerDeckID == playerDeck.id) &&
                        (opponentDeck == null || game.opponentDeckID == opponentDeck.id) &&
                        (mode == Mode.All || game.mode == mode) &&
                        (turn == Turn.All || ((turn == Turn.First) == game.first)))
                    {
                        matchingGames.Add(game);
                    }
                }

                return(matchingGames.ToArray());
            }
            catch (Exception x)
            {
                Console.WriteLine("Exception occurred getting game list for [" + playerCraft.ToString() + "," + opponentCraft.ToString() + "]: " + x.ToString());
            }
            return(new Game[] { });
        }
示例#7
0
 // Use this for initialization
 void Start()
 {
     controller      = GameObject.FindGameObjectWithTag("GameController").GetComponent <GameController>();
     player          = GameObject.FindGameObjectWithTag("Player").GetComponent <Craft>();
     cameraDirection = camera.transform.localPosition.normalized;
     baseRotation    = camera.transform.localRotation.eulerAngles.x;
 }
示例#8
0
        void addGameButtonClick(object sender, EventArgs e)
        {
            int selectedCraft = addGamePlayerCraftList.SelectedIndex + 1;
            int opponentCraft = addGameOpponentCraftList.SelectedIndex + 1;
            int selectedDeck  = addGamePlayerDeckList.SelectedIndex;
            int opponentDeck  = addGameOpponentDeckList.SelectedIndex;

            if (selectedDeck >= 0 && opponentDeck >= 0)
            {
                try
                {
                    Craft  player   = getCraftFromIndex(selectedCraft);
                    Craft  opponent = getCraftFromIndex(opponentCraft);
                    Deck   pDeck    = mGamePlayerDecks[selectedDeck];
                    Deck   oDeck    = mGameOpponentDecks[opponentDeck];
                    int    numTurns = Convert.ToInt32(addGameNumTurnsSelector.Value);
                    string notes    = addGameNotesText.Text;
                    mData.addGame(mGameSelectedCraft, mGameOpponentCraft, pDeck, oDeck, mGameFirstSelected, mGameModeSelected, mGameWonSelected, numTurns, notes == null ? "" : notes);
                    addGameNumTurnsSelector.Value = 0;
                    addGameNotesText.Text         = "";
                    updateGames();
                }
                catch (Exception x)
                {
                    Console.WriteLine("Exception while trying to add game: " + x.ToString());
                    MessageBox.Show("Failed to add game.");
                }
            }
            else
            {
                Console.WriteLine("Could not add game, invalid params");
                MessageBox.Show("Need to select decks.");
            }
        }
示例#9
0
    /// <summary>
    /// Termina el trabajo actual.
    /// </summary>
    public void FinishCraft()
    {
        if (crafteos == null || crafteos.Count == 0)
        {
            Debug.LogWarning("Crafteable::FinishCraft: No se puede terminar este crafteo porque no existe.");
            return;
        }

        Craft _craft = crafteos[0];

        crafteos.RemoveAt(0);
        if (repetir)
        {
            AddCraft(_craft);
        }
        else
        {
            if (manager.craft.panel.activeSelf)
            {
                manager.craft.SetCraftableTable(this);
            }
        }

        if (crafteos.Count > 0)
        {
            tiempoTotal = crafteos[0].tiempo;
        }
    }
示例#10
0
        public void Default()
        {
            // Arrange
            var intelligence = Mock.Of <IAbilityScore>();

            var mockAbilityScores = new Mock <IAbilityScoreSection>();

            mockAbilityScores.Setup(abs => abs.Intelligence)
            .Returns(intelligence);

            var mockCharacter = new Mock <ICharacter>();

            mockCharacter.Setup(c => c.AbilityScores)
            .Returns(mockAbilityScores.Object);

            string craftType = "Robot";

            // Act
            var craft = new Craft(mockCharacter.Object, craftType);

            // Assert
            Assert.AreSame(intelligence, craft.KeyAbilityScore);
            Assert.AreEqual("Craft (Robot)", craft.ToString());
            Assert.IsFalse(craft.ArmorCheckPenaltyApplies);
            Assert.IsTrue(craft.CanBeUsedUntrained);
        }
示例#11
0
 public CraftDetails (Craft skill, int level, CraftRank rank, bool capped)
 {
     Skill = skill;
     Level = level;
     Rank = rank;
     Capped = capped;
 }
示例#12
0
    public float GetCumulativeFuelMassRequired(Navigation.Transfer transfer)
    {
        Craft craft = RefuelPage.Craft;

        List <Navigation.Transfer> transfers;

        if (craft.Navigation.UpcomingTransfers.Contains(transfer))
        {
            transfers = craft.Navigation.UpcomingTransfers
                        .GetRange(0, craft.Navigation.UpcomingTransfers.IndexOf(transfer) + 1);
        }
        else
        {
            transfers = craft.Navigation.UpcomingTransfers.ToList();
            transfers.Append(transfer);
        }

        float reaction_mass = 0;

        foreach (Navigation.Transfer transfer_ in transfers)
        {
            foreach (Navigation.Transfer.Maneuver maneuver in transfer_.Maneuvers)
            {
                float dV = craft.Engine.GetVelocityChangeRequired(maneuver, craft.Motion);

                reaction_mass = dV * (craft.EmptyTankMass + reaction_mass) /
                                craft.Engine.ExhaustVelocity;
            }
        }

        return(reaction_mass);
    }
示例#13
0
    // Start is called before the first frame update
    void Start()
    {
        player     = GetComponent <Craft>();
        controller = GameObject.FindGameObjectWithTag("GameController").GetComponent <GameController>();

        pickupAudioSource = player.gameObject.AddComponent(typeof(AudioSource)) as AudioSource;
        pickupAudioSource.outputAudioMixerGroup = mainMixer.audioMixer.FindMatchingGroups("Sound Effects")[0];

        engineSource = player.gameObject.AddComponent(typeof(AudioSource)) as AudioSource;
        if (engineClip != null)
        {
            engineSource.clip = engineClip;
            engineSource.loop = true;
            engineSource.outputAudioMixerGroup = mainMixer.audioMixer.FindMatchingGroups("Sound Effects")[0];
            engineSource.Play();
        }

        warningSource = player.gameObject.AddComponent(typeof(AudioSource)) as AudioSource;
        if (warningClip != null)
        {
            warningSource.clip = warningClip;
            warningSource.loop = true;
            warningSource.outputAudioMixerGroup = mainMixer.audioMixer.FindMatchingGroups("Sound Effects")[0];
            warningSource.volume = 0;
            warningSource.Play();
        }
    }
示例#14
0
        private void selectCraft(Craft craft)
        {
            mSelectedCraft = craft;

            playerDeckSelector.SelectedIndex = 0;
            updateUI();
        }
示例#15
0
 public CraftDetails(Craft skill, int level, CraftRank rank, bool capped)
 {
     Skill  = skill;
     Level  = level;
     Rank   = rank;
     Capped = capped;
 }
示例#16
0
文件: Stats.cs 项目: JMounier/Aegina
 public static void AddCrafted(Craft craft)
 {
     if (crafted.ContainsKey(craft.ID))
         crafted[craft.ID]++;
     else
         crafted.Add(craft.ID, 1);
 }
示例#17
0
    void Awake()
    {
        instance = this;

        this.SetLayer(Layers.Player);
        craft = GetComponent <Craft>();
    }
示例#18
0
    public override void Tick(int key)
    {
        base.Tick(key);
        if (isOnCD && Time.time > activationTime && GetActiveTimeRemaining() > 0 && !activated)
        {
            activated = true;
            AudioManager.PlayClipByID("clip_activateability", transform.position);
            var   targeting = Core.GetTargetingSystem();
            float minDist   = float.MaxValue;
            target = null;
            for (int i = 0; i < AIData.entities.Count; i++)
            {
                if (AIData.entities[i] is Craft && !AIData.entities[i].GetIsDead() && !FactionManager.IsAllied(AIData.entities[i].faction, Core.faction))
                {
                    float d = (Core.transform.position - AIData.entities[i].transform.position).sqrMagnitude;
                    if (d < minDist)
                    {
                        minDist = d;
                        target  = AIData.entities[i] as Craft;
                    }
                }
            }

            if (target != null)
            {
                target.AddPin();
            }
        }
    }
示例#19
0
        private void listRunes_SelectedIndexChanged(object sender, EventArgs e)
        {
            var fq = listRunes.SelectedItems.OfType <ListViewItem>().FirstOrDefault();

            selCraft = fq?.Tag as Craft;
            Craftify();
        }
示例#20
0
 public Deck[] getDeckList(Craft craft)
 {
     try
     {
         List <Deck> decks = mDataBase.decks;
         if (craft == Craft.All)
         {
             return(decks.ToArray());
         }
         else
         {
             List <Deck> result = new List <Deck>();
             foreach (Deck deck in decks)
             {
                 if (deck.craft == craft)
                 {
                     result.Add(deck);
                 }
             }
             return(result.ToArray());
         }
     }
     catch (Exception x)
     {
         Console.WriteLine("Exception occurred while getting decklist for craft " + craft.ToString() + ": " + x.ToString());
     }
     return(new Deck[] { });
 }
示例#21
0
 // Start is called before the first frame update
 void Start()
 {
     player         = GameObject.FindGameObjectWithTag("Player").GetComponent <Craft>();
     rotor          = GetComponent <Rotor>();
     rotor.minValue = 0;
     rotor.maxValue = player.speedlimit;
 }
示例#22
0
        public static Craft FrogLegs()
        {
            var FrogLegs = new Craft()
            {
                Name            = "Frog Legs",
                StartMessage    = "start message",
                FailureMessages = new List <CraftFailMessage>()
                {
                    new CraftFailMessage()
                    {
                        Message = "",
                    },
                },
                SuccessMessage     = "success message",
                Description        = "To cook Fried Eel you need a pot over the fire and a chub.",
                CraftCommand       = CraftType.Cook,
                CraftAppearsInRoom = false,
                CraftingEmotes     = new List <string>()
                {
                    "Step 1",
                    "Step 2.",
                },
                Materials = new List <CraftMaterials>()
                {
                    new CraftMaterials()
                    {
                        Name  = "Frog",
                        Count = 1
                    },
                    new CraftMaterials()
                    {
                        Name  = "Flour",
                        Count = 1
                    },
                    new CraftMaterials()
                    {
                        Name  = "Tomato",
                        Count = 1
                    },
                    new CraftMaterials()
                    {
                        Name  = "Garlic",
                        Count = 1
                    }
                },
                CreatesItem = new Item.Item()
                {
                    name = "Frog Legs",

                    description = new Description()
                    {
                        look = "Frog Legs"
                    },
                    location = Item.Item.ItemLocation.Inventory
                },
                MoveCost = 20
            };

            return(FrogLegs);
        }
        private static void InsertSchornstein()
        {
            using (var context = new BeerCraftDbContext())
            {
                var craft = new Craft
                {
                    Name = "Cervejaria Schornstein"
                };
                context.Crafts.Add(craft);

                context.Beers.Add(new Beer
                {
                    Name  = "IPA",
                    ABV   = 6.5,
                    IBU   = 45,
                    Craft = craft,
                });
                context.Beers.Add(new Beer
                {
                    Name  = "Weiss",
                    ABV   = 5,
                    Craft = craft,
                });
                context.Beers.Add(new Beer
                {
                    Name  = "Pilsen",
                    ABV   = 4.5,
                    Craft = craft,
                });

                context.SaveChanges();
            }
        }
示例#24
0
        public override void ShowDetail(PanelBuilder panel)
        {
            panel.AddHeaderLabel("Receipts");

            int  i     = 0;
            bool found = false;

            while (_holder.data.ContainsKey("craft" + i))
            {
                found = true;
                var    d  = SplitHelper.SplitInt(_holder.data["craft" + i]);
                Craft  c  = L.b.crafts[d.key];
                int    id = i;
                Button b  = panel.AddImageTextButton((d.value == -1?"Endless ":d.value + "x ") + c.Name(), c.Icon, () =>
                {
                    Remove(id);
                });

                i++;
            }

            if (!found)
            {
                panel.AddLabel("No active receipt found. You can add some from the left menu.");
            }
        }
示例#25
0
 void SpawnPlayer()
 {
     spawn        = GameObject.FindGameObjectWithTag("Respawn").transform;
     playerObject = GameObject.Instantiate(playerPrefab, spawn.position, spawn.rotation);
     player       = playerObject.GetComponent <Craft>();
     player.PutOnHoverHeight();
 }
示例#26
0
        public bool IsViable()
        {
            var map = new Dictionary <string, int>();

            //Check through each resource item
            foreach (Item curItem in inputs)
            {
                if (curItem != null)
                {
                    int count;
                    if (map.TryGetValue(curItem.BlockType, out count))
                    {
                        map[curItem.BlockType] += 1;
                    }
                    else
                    {
                        map.Add(curItem.BlockType, 1);
                    }
                }
            }

            bool result = true;

            foreach (var pair in map)
            {
                if (pair.Value > Inventory.GetCount(pair.Key))
                {
                    result = false;
                }
            }

            return(result);
        }
示例#27
0
    /// <summary>
    /// Immobilizes a nearby enemy
    /// </summary>
    protected override void Execute()
    {
        AudioManager.PlayClipByID("clip_activateability", transform.position);
        var   targeting = Core.GetTargetingSystem();
        float minDist   = rangeSquared;

        target = null;
        for (int i = 0; i < AIData.entities.Count; i++)
        {
            if (AIData.entities[i] is Craft && !AIData.entities[i].GetIsDead() && !FactionManager.IsAllied(AIData.entities[i].faction, Core.faction))
            {
                float d = (Core.transform.position - AIData.entities[i].transform.position).sqrMagnitude;
                if (d < minDist)
                {
                    minDist = d;
                    target  = AIData.entities[i] as Craft;
                }
            }
        }

        if (target != null)
        {
            target.AddPin();
        }
        base.Execute();
    }
示例#28
0
    public void addCrashSound(Craft craft)
    {
        this.craft = craft;

        collisionImpact = SoundSettings.MinImpactForce;
        audioVolume     = SoundSettings.AudioVolume;
    }
示例#29
0
        public static void CloseDevice()
        {
            var player = GetLastClosedBy();

            if (!GetIsPC(player) || GetIsDM(player))
            {
                return;
            }

            var device = OBJECT_SELF;

            for (var item = GetFirstItemInInventory(device); GetIsObjectValid(item); item = GetNextItemInInventory(device))
            {
                var resref = GetResRef(item);

                if (CommandResrefs.Contains(resref))
                {
                    DestroyObject(item);
                }
                else
                {
                    Item.ReturnItem(player, item);
                }
            }

            // If player is quitting crafting, clear out their state.
            var state = Craft.GetPlayerCraftingState(player);

            if (!state.IsOpeningMenu)
            {
                Craft.ClearPlayerCraftingState(player);
            }
        }
示例#30
0
        public override void Do()
        {
            var gameController = GameController.Instance;
            var recipe         = gameController.Recipes.List.Find(r => r.ProductItemName == itemName);

            Craft.Crafting(gameController.Player.Inventory, recipe);
        }
示例#31
0
        public ActionResult Edit(EditCraftViewModel model)
        {
            Craft craft = new Craft();

            if (ModelState.IsValid)
            {
                craft.OwnerID        = model.OwnerID;
                craft.OwnerFirstName = model.OwnerFirstName;
                craft.OwnerLastName  = model.OwnerLastName;
                craft.NameOfCraft    = model.NameOfCraft;
                craft.DockNumber     = model.DockNumber;
                craft.LOA            = model.LOA;
                craft.MembershipID   = model.MembershipID;
                craft.CraftTypeID    = model.CrafTypeID;

                CraftRepo.Edit(craft);

                return(RedirectToAction("List"));
            }
            else
            {
                model.CraftTypes = GetCraftTypeSelectList();

                model.MembershipTypes = GetMembershipSelectList();

                return(View(model));
            }
        }
示例#32
0
 public void Init(Craft craft, IOwner owner = null)
 {
     this.owner = owner;
     this.craft = craft;
     movement   = new AIMovement(this);
     movement.SetMoveTarget(craft.transform.position);
     abilityControl = new AIAbilityController(this);
 }
示例#33
0
文件: Craft.cs 项目: trashCode/Craft
 public void add(Craft craft, int qt)
 {
     //todo : verifier que les compo et sous compo ne contient pas this => pour eviter les redondances cycliques
     if (this.recipe.ContainsKey(craft))
     {
         this.recipe[craft] += qt;
     } else
     {
         this.recipe.Add(craft, qt);
     }
     this.level = this.getLevel();
 }
示例#34
0
    /// <summary>
    /// affiche la liste des crafts disponibles du type selectionne
    /// </summary>
    /// <param name="type"></param>
    private void sub_Categoryze(Craft.Type type)
    {
        if (this.type == Craft.Type.None)
        {
            return;
        }
        Rect box = new Rect();
        for (int i = 0; i < 10; i++)
        {
            box = new Rect(Screen.height / 9, 2 * Screen.height / 9 + i * Screen.height / 18, Screen.height / 18, Screen.height / 18);
            if (GUI.Button(box, "", skin.GetStyle("Inventory")))
            {
                if (this.pos == i)
                {
                    showcraft = false;
                    this.pos = -1;
                }
                else
                {
                    showcraft = this.pos != i;
                    this.pos = i;
                }
                this.craftshow = Craftslist[(int)this.type - 1][(craftindex + i) % (Craftslist[(int)this.type - 1].Count)];
                sound.PlaySound(AudioClips.Button, 1f);
            }
            box.x += Screen.height / 100;
            box.y += Screen.height / 100;
            box.height -= Screen.height / 50;
            box.width -= Screen.height / 50;
            GUI.DrawTexture(box, Craftslist[(int)this.type - 1][(craftindex + i) % (Craftslist[(int)this.type - 1].Count)].Product.Items.Icon);
            box.x -= Screen.height / 200;
            box.y -= Screen.height / 200;
            box.height += Screen.height / 100;
            box.width += Screen.height / 100;
            if (Craftslist[(int)this.type - 1][(craftindex + i) % (Craftslist[(int)this.type - 1].Count)].Product.Quantity > 1)
            {
                GUI.Box(box, Craftslist[(int)this.type - 1][(craftindex + i) % (Craftslist[(int)this.type - 1].Count)].Product.Quantity.ToString(), skin.GetStyle("Quantity"));
            }
            if (box.Contains(Event.current.mousePosition))
            {
                tooltip = true;
                tooltipItem = Craftslist[(int)this.type - 1][(craftindex + i) % (Craftslist[(int)this.type - 1].Count)].Product.Items;
            }

        }
        box = new Rect(Screen.height / 9, 2 * Screen.height / 9 - Screen.height / 18, Screen.height / 18, Screen.height / 18);
        if (GUI.Button(box, "", skin.GetStyle("up_arrow")))
        {
            craftindex = (craftindex - 1) % (Craftslist[(int)this.type - 1].Count);
            sound.PlaySound(AudioClips.Button, 1f);
            showcraft = false;
            this.pos = -1;
        }
        box = new Rect(Screen.height / 9, 7 * Screen.height / 9, Screen.height / 18, Screen.height / 18);
        if (GUI.Button(box, "", skin.GetStyle("down_arrow")))
        {
            craftindex = (craftindex + 1) % (Craftslist[(int)this.type - 1].Count);
            sound.PlaySound(AudioClips.Button, 1f);
            showcraft = false;
            this.pos = -1;
        }
    }
示例#35
0
            /// <summary>
            /// Will get craft details about the passed craft
            /// </summary>
            /// <param name="craft">Craft to get details about</param>
            public CraftDetails GetCraftDetails(Craft craft)
            {
                // Get craft information from fface
                PlayerCraftLevels craftLevels = GetPlayerInformation().CraftLevels;

                // value of specific craft
                int value = 0;

                // See which craft is selected
                switch (craft)
                {
                    case Craft.Alchemy:
                        value = craftLevels.Alchemy;
                        break;
                    case Craft.Bonecrafting:
                        value = craftLevels.Bonecraft;
                        break;
                    case Craft.Clothcraft:
                        value = craftLevels.Clothcraft;
                        break;
                    case Craft.Cooking:
                        value = craftLevels.Cooking;
                        break;
                    case Craft.Fishing:
                        value = craftLevels.Fishing;
                        break;
                    case Craft.Goldsmithing:
                        value = craftLevels.Goldsmithing;
                        break;
                    case Craft.Leathercraft:
                        value = craftLevels.Leathercraft;
                        break;
                    case Craft.Smithing:
                        value = craftLevels.Smithing;
                        break;
                    case Craft.Woodworking:
                        value = craftLevels.Woodworking;
                        break;
                    case Craft.Synergy:
                        value = craftLevels.Synergy;
                        break;
                    default:
                        throw new ArgumentException("Unknown craft passed to GetCraftDetails()");

                } // @ switch (craft)

                // create return result
                CraftDetails details = new CraftDetails(craft, ((value & 0x1FE0) >> 5), (CraftRank)(value & 0x1F), Convert.ToBoolean(((value & 0x8000) >> 15)));
                //details.Capped = Convert.ToBoolean(((value & 0x8000) >> 15));
                //details.Level = ((value & 0x1FE0) >> 5);
                //details.Rank = (CraftRank)(value & 0x1F);
                //details.Skill = craft;

                return details;
            }
示例#36
0
 /// <summary>
 /// Verifie si un Craft est possible
 /// </summary>
 /// <param name="craft"></param>
 /// <returns></returns>
 public bool InventoryContains(Craft craft, bool mastered = true)
 {
     return InventoryContains(craft.Consume, mastered);
 }
示例#37
0
文件: Server.cs 项目: CServer/CServer
		public void OnPlayerDeath(object s, Craft.Net.
示例#38
0
文件: Stats.cs 项目: JMounier/Aegina
 public static uint Crafted(Craft craft)
 {
     if (crafted.ContainsKey(craft.ID))
         return crafted[craft.ID];
     return 0;
 }
示例#39
0
    // Use this for initialization
    void Start()
    {
        if (!isLocalPlayer)
            return;

        this.inventory = gameObject.GetComponent<Inventory>();
        this.sound = GetComponent<Sound>();
        this.type = Craft.Type.None;
        this.skin = Resources.Load<GUISkin>("Sprites/GUISkin/skin");
        this.Craftslist = new List<Craft>[5];
        this.CraftElementary = new List<Craft>();
        this.CraftWorkTop = new List<Craft>();
        this.CraftConsumable = new List<Craft>();
        this.CraftTools = new List<Craft>();
        this.CraftArmor = new List<Craft>();
        this.craftMastered = new Dictionary<int, bool>();
        this.character = GetComponentInChildren<CharacterCollision>().gameObject;
        this.Craftslist[0] = CraftElementary;
        this.Craftslist[1] = CraftWorkTop;
        this.Craftslist[2] = CraftConsumable;
        this.Craftslist[3] = CraftTools;
        this.Craftslist[4] = CraftArmor;
        foreach (Craft craft in CraftDatabase.Crafts)
        {
            if (!craft.Secret)
            {
                this.Craftslist[(int)(craft.What) - 1].Add(craft);
            }
            if (craft.ID != -1)
                this.craftMastered.Add(craft.ID, false);
        }

        this.craftindex = 0;
        this.showcraft = false;
        this.pos = -1;
        this.craftshow = new Craft(Craft.Type.None);
        this.nearwork = new bool[4];
        for (int j = 0; j < 4; j++)
            nearwork[j] = false;

        List<int> mastered = new List<int>();

        if (SceneManager.GetActiveScene().name != "main")
        {
            this.CraftConsumable.Add(CraftDatabase.InstableCore);
            mastered.Add(666);
        }

        foreach (int ids in mastered)
            this.craftMastered[ids] = true;
    }
示例#40
0
    /// <summary>
    /// affiche les elements necessaires
    /// </summary>
    /// <param name="craft"></param>
    private void Craft_used_HUD()
    {
        Rect box = new Rect();
        int i = 0;
        int cost = 1;
        if (!craftMastered[craftshow.ID])
        {
            cost++;
        }
        foreach (ItemStack item in craftshow.Consume)
        {
            box = new Rect((3 + i) * Screen.height / 18, 2 * Screen.height / 9 + pos * Screen.height / 18, Screen.height / 18, Screen.height / 18);

            if (GUI.Button(box, "", skin.GetStyle("Slot")))
            {
                Craft Craft = null;
                foreach (Craft craft in CraftDatabase.Crafts)
                {
                    if (craft.Product.Items.ID == item.Items.ID)
                    {
                        Craft = craft;
                        break;
                    }
                }
                if (Craft != null)
                {
                    int index = 0;
                    pos = 0;
                    this.type = Craft.What;
                    foreach (Craft recette in this.Craftslist[((int)type) - 1])
                    {
                        if (recette.ID == Craft.ID)
                        {
                            this.showcraft = true;
                            craftindex = index;
                            craftshow = recette;
                        }
                        index += 1;
                    }
                }
            }
            Rect littlebox = new Rect((3 + i) * Screen.height / 18 + Decal, 2 * Screen.height / 9 + pos * Screen.height / 18 + Decal, Screen.height / 18 - 2 * Decal, Screen.height / 18 - 2 * Decal);
            GUI.DrawTexture(littlebox, item.Items.Icon);
            littlebox = new Rect((3 + i) * Screen.height / 18 + Decal / 2, 2 * Screen.height / 9 + pos * Screen.height / 18 + Decal / 2, Screen.height / 18 - Decal, Screen.height / 18 - Decal);
            GUI.Box(littlebox, inventory.InventoryContains(item.Items, item.Quantity * cost) ? (item.Quantity * cost).ToString() : "<color=#ff0000>" + (item.Quantity * cost).ToString() + "</color>", skin.GetStyle("Quantity"));
            if (box.Contains(Event.current.mousePosition))
            {
                tooltip = true;
                tooltipItem = item.Items;
            }
            i += 1;
        }
        box = new Rect((3 + i) * Screen.height / 18, 2 * Screen.height / 9 + pos * Screen.height / 18, Screen.height / 18, Screen.height / 18);

        bool RecipeComplete = inventory.InventoryContains(craftshow, cost == 1);
        bool WorkTopNear = (!craftshow.Fire || nearwork[0]) && (!craftshow.Workbench || nearwork[1]) && (!craftshow.Forge || nearwork[2]) && (!craftshow.Brewer || nearwork[3]);

        if (WorkTopNear && RecipeComplete)
        {
            if (GUI.Button(box, "", this.skin.GetStyle("Slot")))
            {
                CmdMakeCraft(craftshow.ID);
                inventory.DeleteItems(craftshow.Consume, cost == 1);
                ItemStack its = new ItemStack(craftshow.Product.Items, craftshow.Product.Quantity);
                inventory.AddItemStack(its);
                if (its.Quantity != 0)
                    inventory.Drop(its);
                if (craftshow.Workbench)
                    sound.PlaySound(AudioClips.workbensh, 1f);
                else if (craftshow.Forge)
                    sound.PlaySound(AudioClips.forge, 1f);
                else if (craftshow.Brewer)
                    sound.PlaySound(AudioClips.cooking, 1f);
                else
                    sound.PlaySound(AudioClips.Button, 1f);
            }
            box.x += Decal;
            box.y += Decal;
            box.width -= 2 * Decal;
            box.height -= 2 * Decal;
            GUI.DrawTexture(box, Resources.Load<Texture2D>("Sprites/CraftsIcon/Valid"));
        }
        else
        {
            GUI.Box(box, "", this.skin.GetStyle("Slot"));
            box.x += Decal;
            box.y += Decal;
            box.width -= 2 * Decal;
            box.height -= 2 * Decal;
            GUI.DrawTexture(box, Resources.Load<Texture2D>("Sprites/CraftsIcon/Invalid"));
        }
    }
示例#41
0
 public void PlayerLoggedIn(object sender, Craft.Net.Server.Events.PlayerLogInEventArgs e)
 {
 }
示例#42
0
文件: Craft.cs 项目: trashCode/Craft
    public static void create(string name,int batchSize)
    {
        try
        {
            if (Craft.exists(name))
            {
                throw new Exception(String.Format("Craft \"{0}\" already defined", name));
            }
            Craft x = new Craft(name,batchSize);

        }
        catch (Exception e)
        {
            Console.WriteLine("Cannot create craft : {0}", e.Message);
        }
    }