Setup signals to give information from running cards

This commit is contained in:
2022-07-17 16:47:27 +01:00
parent 08a265a14b
commit b4f33f30b6
7 changed files with 56 additions and 21 deletions

View File

@ -2,6 +2,9 @@ tool
extends Control
signal return_dice(dice_number)
signal do_movement(movement_range)
signal do_damage(damage, damage_range)
signal do_effect(effect, effect_range)
const TYPE_COLORS = [
Color("#db4758"), # DAMAGE
@ -121,11 +124,12 @@ func run_card():
var damage = card_info.damage_amount_addition
for dice_number in input_dice:
damage += card_info.damage_dice_multiplyer * dice_number
emit_signal("do_damage", damage, card_info.effect_damage_range)
# do any utility dice returns
for dice_number in input_dice:
if card_info.EFFECT.SPLIT in card_info.effects:
if Global.EFFECT.SPLIT in card_info.effects:
var halfed_dice = float(dice_number)/2.0
var new_dice1 = halfed_dice
@ -139,7 +143,7 @@ func run_card():
emit_signal("return_dice", new_dice1)
emit_signal("return_dice", new_dice2)
if card_info.EFFECT.DOUBLE in card_info.effects:
if Global.EFFECT.DOUBLE in card_info.effects:
var new_dice1 = dice_number * 2
var new_dice2 = 0
@ -151,7 +155,7 @@ func run_card():
emit_signal("return_dice", new_dice1)
if new_dice2 != 0: emit_signal("return_dice", new_dice1)
if card_info.EFFECT.HALF in card_info.effects:
if Global.EFFECT.HALF in card_info.effects:
var new_dice = float(dice_number)/2.0
#if decimal valued, add 0.5 or - 0.5 at random
@ -160,14 +164,19 @@ func run_card():
emit_signal("return_dice", new_dice)
if card_info.EFFECT.FLIP in card_info.effects:
if Global.EFFECT.FLIP in card_info.effects:
# all opposite sides of a dice add up to 7
emit_signal("return_dice", 7 - dice_number)
if card_info.EFFECT.DUPLICATE in card_info.effects:
if Global.EFFECT.DUPLICATE in card_info.effects:
emit_signal("return_dice", dice_number)
emit_signal("return_dice", dice_number)
# for each effect, emit do effect with the range
for effect in card_info.effects:
emit_signal("do_effect", effect, card_info.effect_damage_range)
emit_signal("do_movement", card_info.movement)
#clear the input dice
input_dice = []

View File

@ -1,6 +1,9 @@
extends Control
signal return_dice(dice_number)
signal do_movement(movement_range)
signal do_damage(damage, damage_range)
signal do_effect(effect, effect_range)
const card = preload("res://UI/Card.tscn")
const card_db_string = "res://Assets/CardDB/%s.tres"
@ -16,6 +19,12 @@ var currently_holding_dice = null
func emit_return_dice(dice_number):
emit_signal("return_dice", dice_number)
func emit_do_movement(movement_range):
emit_signal("do_movement", movement_range)
func emit_do_damage(damage, damage_range):
emit_signal("do_damage", damage, damage_range)
func emit_do_effect(effect, effect_range):
emit_signal("do_effect", effect, effect_range)
func set_currently_holding_dice(dice_number : int):
@ -80,6 +89,9 @@ func draw_card(specific_card : String = ""):
# connect new_card.return_dice signal to self.emit_return_dice
new_card.connect("return_dice", self, "emit_return_dice")
new_card.connect("do_movement", self, "emit_do_movement")
new_card.connect("do_damage", self, "emit_do_damage")
new_card.connect("do_effect", self, "emit_do_effect")
# add the current card to the list of card
current_cards.append(new_card)