/// <summary> /// 任何一个策略牌的使用方法 /// </summary> /// <param name="uInput"></param> /// <returns></returns> public virtual bool Use(UseInput uInput = null) { if (Owner.bDot < cost) { return false; } Owner.policyCard.Remove(this); GameCore.IDP.CID.Del(this); if (Fuction(uInput)) { Owner.bDot -= cost; return true; } else { return false; } }
private void Populate() { inputPool = new List <UseInput>(); outputPool = new List <UseInput>(); nameField.text = GameHandler.dataHandler.GetExpressionName(currentExpression); // Create inputs and outputs int created = 0; float elementSize = 0; float padding = 20.0f; foreach (ElementData ed in GameHandler.dataHandler.GetExpressionInputs(currentExpression)) { UseInput ui = Instantiate(GameHandler.objectHandler.useInput, inputs).GetComponent <UseInput>(); RectTransform trans = ui.GetComponent <RectTransform>(); elementSize = trans.sizeDelta.x; trans.localPosition = new Vector3(padding + (created * (elementSize + padding)), 0.0f, 0.0f); ui.SetData(true, ed); inputPool.Add(ui); created++; } inputs.sizeDelta = new Vector2(((elementSize + padding) * created) + padding, inputs.sizeDelta.y); created = 0; foreach (ElementData ed in GameHandler.dataHandler.GetExpressionOutputs(currentExpression)) { UseInput ui = Instantiate(GameHandler.objectHandler.useInput, outputs).GetComponent <UseInput>(); RectTransform trans = ui.GetComponent <RectTransform>(); elementSize = trans.sizeDelta.x; trans.localPosition = new Vector3(padding + (created * (elementSize + padding)), 0.0f, 0.0f); ui.SetData(false, ed); outputPool.Add(ui); created++; } outputs.sizeDelta = new Vector2(((elementSize + padding) * created) + padding, outputs.sizeDelta.y); }
/// <summary> /// 策略牌使用时执行的操作 /// </summary> /// <param name="uInput"></param> /// <returns></returns> public abstract bool Fuction(UseInput uInput = null);