Add Cover card and implement block
This commit is contained in:
parent
ba5b890c2a
commit
b4dd6c3496
8 changed files with 266 additions and 3 deletions
|
|
@ -94,11 +94,18 @@ public class BattleController : MonoBehaviour
|
||||||
private void StartHeroTurn() {
|
private void StartHeroTurn() {
|
||||||
this.heroTurn = true;
|
this.heroTurn = true;
|
||||||
this.energy = this.maxEnergy;
|
this.energy = this.maxEnergy;
|
||||||
|
foreach (BattleHero hero in this.heroes) {
|
||||||
|
hero.ResetBlock();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void StartEnemyTurn() {
|
private void StartEnemyTurn() {
|
||||||
this.heroTurn = false;
|
this.heroTurn = false;
|
||||||
|
|
||||||
|
foreach (BattleMonster monster in this.monsters) {
|
||||||
|
monster.ResetBlock();
|
||||||
|
}
|
||||||
|
|
||||||
heroes[this.enemyTarget].DealDamage(2);
|
heroes[this.enemyTarget].DealDamage(2);
|
||||||
|
|
||||||
DecideEnemyTarget();
|
DecideEnemyTarget();
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
using System.Collections;
|
using System;
|
||||||
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
|
|
@ -7,6 +8,7 @@ public class BattleParticipant
|
||||||
protected string displayName;
|
protected string displayName;
|
||||||
protected int hp;
|
protected int hp;
|
||||||
protected int maxHP;
|
protected int maxHP;
|
||||||
|
protected int block;
|
||||||
|
|
||||||
public void Init() {
|
public void Init() {
|
||||||
this.hp = this.maxHP;
|
this.hp = this.maxHP;
|
||||||
|
|
@ -25,7 +27,24 @@ public class BattleParticipant
|
||||||
}
|
}
|
||||||
|
|
||||||
public void DealDamage(int damage) {
|
public void DealDamage(int damage) {
|
||||||
|
int blockedDamage = Math.Min(damage, this.block);
|
||||||
|
if (blockedDamage > 0) {
|
||||||
|
this.block -= blockedDamage;
|
||||||
|
damage -= blockedDamage;
|
||||||
|
}
|
||||||
this.hp -= damage;
|
this.hp -= damage;
|
||||||
if (this.hp < 0) this.hp = 0;
|
if (this.hp < 0) this.hp = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void AddBlock(int block) {
|
||||||
|
this.block += block;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ResetBlock() {
|
||||||
|
this.block = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int GetBlock() {
|
||||||
|
return this.block;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -304,7 +304,7 @@ MonoBehaviour:
|
||||||
heroIds: 010000000000000002000000
|
heroIds: 010000000000000002000000
|
||||||
monsterIds: 000000000100000000000000
|
monsterIds: 000000000100000000000000
|
||||||
maxEnergy: 6
|
maxEnergy: 6
|
||||||
cardIds: 0000000000000000000000000000000000000000
|
cardIds: 0000000000000000000000000000000001000000
|
||||||
heroUIPrefab: {fileID: 6641511084601005557, guid: ef1b469b45cedee418e4c4adf577cd00,
|
heroUIPrefab: {fileID: 6641511084601005557, guid: ef1b469b45cedee418e4c4adf577cd00,
|
||||||
type: 3}
|
type: 3}
|
||||||
uiCanvas: {fileID: 35522588}
|
uiCanvas: {fileID: 35522588}
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
public enum CardId {
|
public enum CardId {
|
||||||
CrashingPunch
|
CrashingPunch,
|
||||||
|
Cover
|
||||||
}
|
}
|
||||||
|
|
||||||
public class CardDatabase
|
public class CardDatabase
|
||||||
|
|
@ -13,6 +14,8 @@ public class CardDatabase
|
||||||
{
|
{
|
||||||
case CardId.CrashingPunch:
|
case CardId.CrashingPunch:
|
||||||
return new CardCrashingPunch();
|
return new CardCrashingPunch();
|
||||||
|
case CardId.Cover:
|
||||||
|
return new CardCover();
|
||||||
default:
|
default:
|
||||||
throw new System.ArgumentException("CardId unknown", "id");
|
throw new System.ArgumentException("CardId unknown", "id");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
17
Assets/Battle/Cards/CardCover.cs
Normal file
17
Assets/Battle/Cards/CardCover.cs
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public class CardCover : BaseCard
|
||||||
|
{
|
||||||
|
public CardCover() : base(CardId.Cover, "Cover", 1, CardType.Action, "Block 3 damage on another target ally.") {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public override IEnumerator Use(BattlePlayerControls playerControls) {
|
||||||
|
List<BattleParticipant> target = new List<BattleParticipant>();
|
||||||
|
yield return playerControls.StartCoroutine(playerControls.ChooseTarget((t) => {target.Add(t);}));
|
||||||
|
Debug.Log("Covering " + target[0]);
|
||||||
|
target[0].AddBlock(3);
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/Battle/Cards/CardCover.cs.meta
Normal file
11
Assets/Battle/Cards/CardCover.cs.meta
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: adec885589bc619409ad04df50ddd568
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -11,9 +11,12 @@ public class HeroInfoUI : MonoBehaviour
|
||||||
public Image healthBarBgImage;
|
public Image healthBarBgImage;
|
||||||
public Image healthBarFgImage;
|
public Image healthBarFgImage;
|
||||||
public Text hpText;
|
public Text hpText;
|
||||||
|
public GameObject blockGroup;
|
||||||
|
public Text blockText;
|
||||||
|
|
||||||
private int renderedHP = -1;
|
private int renderedHP = -1;
|
||||||
private int renderedMaxHP = -1;
|
private int renderedMaxHP = -1;
|
||||||
|
private int renderedBlock = -1;
|
||||||
private Camera mainCamera;
|
private Camera mainCamera;
|
||||||
|
|
||||||
private static Color HIGH_HP_COLOR = new Color(0f, 0.8f, 0f);
|
private static Color HIGH_HP_COLOR = new Color(0f, 0.8f, 0f);
|
||||||
|
|
@ -56,5 +59,16 @@ public class HeroInfoUI : MonoBehaviour
|
||||||
}
|
}
|
||||||
this.hpText.text = "" + hp + " / " + maxHP;
|
this.hpText.text = "" + hp + " / " + maxHP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int block = this.battleParticipant.GetBlock();
|
||||||
|
if (this.renderedBlock != block) {
|
||||||
|
this.renderedBlock = block;
|
||||||
|
if (block == 0) {
|
||||||
|
this.blockGroup.SetActive(false);
|
||||||
|
} else {
|
||||||
|
this.blockGroup.SetActive(true);
|
||||||
|
this.blockText.text = "" + block;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,83 @@
|
||||||
%YAML 1.1
|
%YAML 1.1
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &1970939329566987749
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 7186401048428393162}
|
||||||
|
- component: {fileID: 7203125139980703040}
|
||||||
|
- component: {fileID: 1400733402613879005}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: BlockText
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &7186401048428393162
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1970939329566987749}
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 1054158240845704231}
|
||||||
|
m_RootOrder: 1
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchoredPosition: {x: -36, y: 0}
|
||||||
|
m_SizeDelta: {x: 17, y: 14.8}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &7203125139980703040
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1970939329566987749}
|
||||||
|
m_CullTransparentMesh: 0
|
||||||
|
--- !u!114 &1400733402613879005
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1970939329566987749}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 0.6226415, g: 0.6226415, b: 0.6226415, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_FontData:
|
||||||
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
|
m_FontSize: 12
|
||||||
|
m_FontStyle: 0
|
||||||
|
m_BestFit: 0
|
||||||
|
m_MinSize: 1
|
||||||
|
m_MaxSize: 40
|
||||||
|
m_Alignment: 4
|
||||||
|
m_AlignByGeometry: 0
|
||||||
|
m_RichText: 1
|
||||||
|
m_HorizontalOverflow: 0
|
||||||
|
m_VerticalOverflow: 0
|
||||||
|
m_LineSpacing: 1
|
||||||
|
m_Text: 56
|
||||||
--- !u!1 &5172729878808660606
|
--- !u!1 &5172729878808660606
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
@ -78,6 +156,117 @@ MonoBehaviour:
|
||||||
m_VerticalOverflow: 0
|
m_VerticalOverflow: 0
|
||||||
m_LineSpacing: 1
|
m_LineSpacing: 1
|
||||||
m_Text: 12 / 34
|
m_Text: 12 / 34
|
||||||
|
--- !u!1 &5194869534592792291
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1054158240845704231}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: Block
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &1054158240845704231
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5194869534592792291}
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children:
|
||||||
|
- {fileID: 1373189589245154165}
|
||||||
|
- {fileID: 7186401048428393162}
|
||||||
|
m_Father: {fileID: 6071241564507600362}
|
||||||
|
m_RootOrder: 2
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 60}
|
||||||
|
m_SizeDelta: {x: 100, y: 100}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!1 &5574000899179897583
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1373189589245154165}
|
||||||
|
- component: {fileID: 8600655002061634105}
|
||||||
|
- component: {fileID: 2205983270256308677}
|
||||||
|
m_Layer: 5
|
||||||
|
m_Name: BG
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &1373189589245154165
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5574000899179897583}
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 1054158240845704231}
|
||||||
|
m_RootOrder: 0
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchoredPosition: {x: -36, y: 0}
|
||||||
|
m_SizeDelta: {x: 17, y: 12}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &8600655002061634105
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5574000899179897583}
|
||||||
|
m_CullTransparentMesh: 0
|
||||||
|
--- !u!114 &2205983270256308677
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5574000899179897583}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 0, g: 0.360829, b: 0.6603774, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 21300000, guid: ff1a435c8e6ef4a46aeb34ba613ce13d, type: 3}
|
||||||
|
m_Type: 0
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 0
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
--- !u!1 &6071241563652651137
|
--- !u!1 &6071241563652651137
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
@ -372,6 +561,7 @@ RectTransform:
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 6071241564363553667}
|
- {fileID: 6071241564363553667}
|
||||||
- {fileID: 6071241564411437881}
|
- {fileID: 6071241564411437881}
|
||||||
|
- {fileID: 1054158240845704231}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 0
|
m_RootOrder: 0
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
|
@ -396,3 +586,5 @@ MonoBehaviour:
|
||||||
healthBarBgImage: {fileID: 6071241563652651135}
|
healthBarBgImage: {fileID: 6071241563652651135}
|
||||||
healthBarFgImage: {fileID: 6071241564068399931}
|
healthBarFgImage: {fileID: 6071241564068399931}
|
||||||
hpText: {fileID: 2548384344736816241}
|
hpText: {fileID: 2548384344736816241}
|
||||||
|
blockGroup: {fileID: 5194869534592792291}
|
||||||
|
blockText: {fileID: 1400733402613879005}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue