Ejemplo n.º 1
0
 public void ClearSequence()
 {
     actionItemObject      = null;
     targetItemObject      = null;
     actionItemAtFocusArea = string.Empty;
     targetItemAtFocusArea = string.Empty;
     actionTaken           = CraftingAction.NONE;
 }
    public void SetCraftingActionButton(CraftingAction craftAction, CraftingManager crafter)
    {
        craftingAction = craftAction;

        craftingMenuBehaviour = crafter;

        this.SetWidgetText(craftingAction.ToString());
    }
 public CraftingCondition(CraftingSim sim, CraftingAction craftingAction)
 {
     Sim            = sim;
     CraftingAction = craftingAction;
     ActionSettings = new ActionSettings();
     Conditions     = new ObservableCollection <PropertyComparisonInfo>();
     Conditions.CollectionChanged += Conditions_CollectionChanged;
 }
Ejemplo n.º 4
0
    private bool CraftingActionNeedsItem(CraftingAction action)
    {
        if (action == CraftingAction.NONE || action == CraftingAction.ATTACH)
        {
            return(false);
        }

        return(true);
    }
Ejemplo n.º 5
0
    public void ExecuteCraftingAction(MonoBehaviour host, CraftingAction craftingAction)
    {
        if (TakingCraftingAction)
        {
            return;
        }

        host.StartCoroutine(TakeCraftingAction(craftingAction, 0f));
    }
Ejemplo n.º 6
0
    private IEnumerator TakeCraftingAction(CraftingAction craftingAction, float waitTime)
    {
        TakingCraftingAction = true;

        activeSequence.actionTaken = craftingAction;

        yield return(new WaitForSeconds(waitTime));

        TakingCraftingAction = false;
    }
Ejemplo n.º 7
0
        public ToolSelectorButton CreateToolSelectorButton(CraftingAction tool)
        {
            var instantiate = Instantiate(buttonPrefab, this.rectTransform);

            var selector = instantiate.GetOrAddComponent <ToolSelectorButton>();

            selector.SetToolData(tool);

            return(selector);
        }
    private void OnWidgetActivated(CraftingAction action)
    {
        bool thisButtonActive = action == craftingAction;

        this.colorSet.ApplyColorSetToImage(image, thisButtonActive);

        float scaleModifier = thisButtonActive ? ActiveScaleFactor : InactiveScaleFactor;

        transform.localScale = Vector3.one * scaleModifier;
    }
Ejemplo n.º 9
0
 public CraftingSim()
 {
     CraftingActions       = new CraftingAction[MaxActions];
     CraftingActionsLength = 0;
     CraftingBuffs         = new List <CraftingBuff>();
     StepSettings          = new CraftingSimStepSettings[MaxActions];
     for (int i = 0; i < MaxActions; i++)
     {
         StepSettings[i] = new CraftingSimStepSettings();
     }
 }
Ejemplo n.º 10
0
        private void SolveForCurrentActions(CraftingAction[] availableActions, CraftingAction[] actions)
        {
            Sim.RemoveActions();
            Sim.AddActions(true, actions);
            var currentActions = Sim.GetCraftingActions();

            if (currentActions.Length == actions.Length)
            {
                for (int i = 0; i < availableActions.Length; i++)
                {
                    var newActions = new CraftingAction[currentActions.Length + 1];
                    currentActions.CopyTo(newActions, 0);
                    newActions[newActions.Length - 1] = availableActions[i];
                    SolveForCurrentActions(availableActions, newActions);
                }
            }
        }
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            CraftingAction action = value as CraftingAction;
            ClassJobInfo   info   = ClassJobInfo.CRP;

            if (parameter != null)
            {
                info = (ClassJobInfo)parameter;
            }
            if (action == null)
            {
                return(null);
            }
            if (G.Actions == null)
            {
                return(null);
            }
            return(G.Actions[action.Name].Images[info]);
        }
Ejemplo n.º 12
0
        private void CopyMacroClicked(object sender, RoutedEventArgs e)
        {
            if (Sim == null)
            {
                return;
            }

            string text    = "";
            var    actions = Sim.GetCraftingActions();

            for (int i = 0; i < actions.Length; i++)
            {
                CraftingAction ac = actions[i];
                text += $"/ac \"{ac.Name}\" <wait.{(ac.IsBuff ? 2 : 3)}>\r\n";
            }
            if (!string.IsNullOrEmpty(text))
            {
                Dispatcher.Invoke(() => Clipboard.SetDataObject(text));
            }
        }
Ejemplo n.º 13
0
 public void SubmitCraftingActionToItemCrafter(CraftingAction action)
 {
     itemCrafter.ExecuteCraftingAction(this, action);
 }
Ejemplo n.º 14
0
        public virtual void ExecuteActions(Dictionary <ExtendedArray <ushort>, CraftingSim> states = null)
        {
            CurrentCP       = MaxCP;
            CurrentProgress = 0;
            CurrentQuality  = 0;

            CraftingBuffs.Clear();
            InnerQuietBuff        = null;
            WasteNotBuff          = null;
            VenerationBuff        = null;
            GreatStridesBuff      = null;
            InnovationBuff        = null;
            MuscleMemoryBuff      = null;
            ManipulationBuff      = null;
            ObserveBuff           = null;
            NameOfTheElementsBuff = null;
            NameOfTheElementsUsed = false;
            Step = 0;
            if (CurrentRecipe == null)
            {
                return;
            }

            //if (states == null)
            //    states = G.CraftingStates;

            CurrentDurability = CurrentRecipe.Durability;

            if (CraftingActionsLength == 0)
            {
                //FinishedStep(this, 0);
                FinishedExecution(this);
                return;
            }

            ExtendedArray <ushort> actions = null;

            if (states != null)
            {
                actions = GetCraftingActions().Select(x => x.Id).ToArray();
                if (states.ContainsKey(actions))
                {
                    states[actions].CopyTo(this, true);
                    FinishedExecution(this);
                    return;
                }
            }

            for (int i = 0; i < CraftingActionsLength; i++)
            {
                CraftingAction action = CraftingActions[i];


                if (CurrentDurability <= 0 ||
                    action.AsFirstActionOnly && i > 0 ||
                    CurrentProgress >= CurrentRecipe.MaxProgress ||
                    action.GetCPCost(this) > CurrentCP ||
                    action.CheckInner(this) != CraftingActionResult.Success)
                {
                    RemoveRedundantActions();
                    if (states != null)
                    {
                        actions = GetCraftingActions().Select(x => x.Id).ToArray();
                        CraftingSim sim = Clone();
                        CopyTo(sim, true);
                        states[actions] = sim;
                    }
                    FinishedExecution(this);
                    return;
                }


                action.IncreaseProgress(this);
                action.IncreaseQuality(this);

                CurrentDurability -= action.GetDurabilityCost(this);
                if (CurrentDurability > CurrentRecipe.Durability)
                {
                    CurrentDurability = CurrentRecipe.Durability;
                }
                CurrentCP -= action.GetCPCost(this);


                foreach (var buff in CraftingBuffs)
                {
                    buff.Step(this);
                }

                for (int j = 0; j < CraftingBuffs.Count; j++)
                {
                    var buff = CraftingBuffs[j];
                    if (buff.NeedsRemove)
                    {
                        buff.Remove(this);
                        j--;
                    }
                }
                Step++;

                if (action.AddsBuff)
                {
                    action.AddBuff(this);
                }

                FinishedStep(this, i);
            }

            if (states != null)
            {
                actions = GetCraftingActions().Select(x => x.Id).ToArray();
                CraftingSim sim = Clone();
                CopyTo(sim, true);
                states[actions] = sim;
            }
            FinishedExecution(this);
        }
Ejemplo n.º 15
0
 public CraftingAction[] GetCraftingActions()
 {
     CraftingAction[] result = new CraftingAction[CraftingActionsLength];
     Array.Copy(CraftingActions, result, CraftingActionsLength);
     return(result);
 }
Ejemplo n.º 16
0
 public void AddAction(CraftingAction action)
 {
     actions.Add(action);
     actions.Sort((CraftingAction a, CraftingAction b) => { return(a.Priority > b.Priority ? 1 : -1); });
 }
Ejemplo n.º 17
0
    private void CreateCraftingActionWidgetInternal(UiElementContainer container, GameObject prefab, CraftingAction action, int?position = null)
    {
        Debug.LogFormat("Creating Crafting action button {0}", action);
        container.SpawnAtAlternatingVerticalPositions(prefab, 100, 150, position: position);
        CraftingActionWidget craftAction = container.GetLastChildComponent <CraftingActionWidget>();

        craftAction.InitializeWidgetComponents();

        craftAction.SetCraftingActionButton(action, craftingManager);
        craftAction.EnableFidgeting();
    }
Ejemplo n.º 18
0
 public void SetToolData(CraftingAction tool)
 {
     this.ToolName   = tool.ToString();
     ButtonText.text = this.ToolName;
     this.action     = tool;
 }
 public CraftingActionContainer(CraftingSimEx sim, CraftingAction action)
 {
     Source = G.Actions[action.Name].Images[sim.CurrentRecipe.ClassJob];
     Sim    = sim;
     Action = action;
 }
Ejemplo n.º 20
0
 public ImageAndActionContainer(CraftingSimEx sim, CraftingAction craftingAction)
 {
     CraftingAction = craftingAction;
     BitmapSource   = G.Actions[CraftingAction.Name].Images[sim.CurrentRecipe.ClassJob];
 }