Explorar o código

[Added] Fight Initialization processes. Arrays for magic combat attributes.

KeyMasterOfGozer %!s(int64=5) %!d(string=hai) anos
pai
achega
55c8d51f2c
Modificáronse 1 ficheiros con 106 adicións e 10 borrados
  1. 106 10
      locations/fight.qsrc

+ 106 - 10
locations/fight.qsrc

@@ -13,27 +13,123 @@ opp_jab[0] = Ligth punch
 opp_stren[0] = Strengh
 opp_agil[0] = Agility
 opp_vital[0] = Opponent health
-opp_react = Reactions
+opp_react[0] = Reactions
 opp_shoot[0] = opponent marksmanship (only required if they are armed)
 opp_magik[0] = only if they have magic
 opp_mana[0] = only if they have magic
+opp_fog[0] = (tuman): Obscures vision, makes hitting harder.
+opp_clone[0] = (klon): Copies of the char that absorb 1 hit and disappear.  A char may have some number of them.
+opp_shield[0] = (defence): Shielding that absorbs damage before hitpoints.
+opp_dambonus[0] = (magweapbonus): damage added to melee attacks
+opp_init[0] = (initBonus): attack faster/first
+opp_stun[0] = (stunner): make target unable to act for some amount of time
 }
 
+if $ARGS[0] = 'initFight':
+	!! Clear Opponents from previous battle
+	killvar '$opp_name'
+	killvar '$opp_image'
+	killvar 'opp_def'
+	killvar 'opp_run'
+	killvar 'opp_wrstlng'
+	killvar 'opp_kick'
+	killvar 'opp_punch'
+	killvar 'opp_jab'
+	killvar 'opp_stren'
+	killvar 'opp_agil'
+	killvar 'opp_vital'
+	killvar 'opp_react'
+	killvar 'opp_shoot'
+	killvar 'opp_magik'
+	killvar 'opp_mana'
+	killvar 'opp_fog'
+	killvar 'opp_clone'
+	killvar 'opp_shield'
+	killvar 'opp_dambonus'
+	killvar 'opp_init'
+	killvar 'opp_stun'
+
+	!! Clear any allies from previous battle
+	i = arrsize('pcs_def')
+	:ClearAllyLoop
+	if i > 0:
+		gs 'fight', 'clearPCSArray', i-1
+		i -= 1
+		jump 'ClearAllyLoop'
+	end
+	killvar 'i'
+end
+
+if $ARGS[0] = 'clearPCSArray':
+!{ Delete an Ally from the pcs data arrays
+	ARGS[1] = Which ally slot tot delete
+}
+	i = ARGS[1]
+
+	killvar '$pcs_name', i
+	killvar '$pcs_image', i
+	killvar 'pcs_def', i
+	killvar 'pcs_run', i
+	killvar 'pcs_wrstlng', i
+	killvar 'pcs_kick', i
+	killvar 'pcs_punch', i
+	killvar 'pcs_jab', i
+	killvar 'pcs_stren', i
+	killvar 'pcs_agil', i
+	killvar 'pcs_vital', i
+	killvar 'pcs_react', i
+	killvar 'pcs_shoot', i
+	killvar 'pcs_magik', i
+	killvar 'pcs_mana', i
+	killvar 'pcs_fog', i
+	killvar 'pcs_clone', i
+	killvar 'pcs_shield', i
+	killvar 'pcs_dambonus', i
+	killvar 'pcs_init', i
+	killvar 'pcs_stun', i
+
+	killvar 'i'
+end
+
+if $ARGS[0] = 'randomOpp':
+!{ Generate a random Opponent
+	ARGS[1] = Optional, raise difficulty of the attacker, 0 - 50
+}
+	OppDiffBonus = ARGS[1]
+	i = arrsize('opp_def')
+	opp_name[i] = 'Opponent 1'
+	opp_image[i] = 'images/locations/shared/street/mugger.jpg'
+	opp_def[i] = rand(1,50) + OppDiffBonus
+	opp_run[i] = rand(1,50) + OppDiffBonus
+	opp_wrstlng[i] = rand(1,50) + OppDiffBonus
+	opp_kick[i] = rand(1,50) + OppDiffBonus
+	opp_punch[i] = rand(1,50) + OppDiffBonus
+	opp_jab[i] = rand(1,50) + OppDiffBonus
+	opp_stren[i] = rand(1,50) + OppDiffBonus
+	opp_agil[i] = rand(1,50) + OppDiffBonus
+	opp_vital[i] = rand(1,50) + OppDiffBonus
+	opp_react[i] = rand(1,50) + OppDiffBonus
+	opp_shoot[i] = rand(1,50) + OppDiffBonus
+	killvar 'OppDiffBonus'
+	killvar 'i'
+end
+
+
 if $ARGS[0] = 'start':
 	menu_off = 1
 	inFight = 1
 	gs 'themes', 'indoors'
 	cla
-	
+
 	'<center><b><font color="maroon">Fight!</font></b></center>'
 	*nl
 	'<left><img <<$set_imgh>> src="<<FUNC(''$face_image'')>>"></left><right><<$opp_image[0]>></right>'
 	*nl
 	'<left><<$pcs_firstname>></left><center>vs.</center><right><<$opp_name[0]>></right>'
-	
+
 	pcs_timer = 100 - pcs_react
 	opp_timer = 100 - opp_react[0]
-	
+
 	act 'Engage': gt 'fight', 'main'
 end
 
@@ -56,7 +152,7 @@ if $ARGS[0] = 'result_check':
 		xgt 'ender', 'win'
 		exit
 	end
-	
+
 !!	gs'defence'
 !!	gs'statBat'
 
@@ -159,7 +255,7 @@ if $ARGS[0] = 'opponent':
 	else
 		dynamic $fight['Attack'], 'Jab', 'pcs', 0, 0
 	end
-end	
+end
 
 if $ARGS[0] = 'player':
 	if pcs_magik > 0: gs 'fight', 'spellcast'
@@ -175,7 +271,7 @@ if $ARGS[0] = 'player':
 	act 'Jab them':
 		dynamic $fight['Attack'], 'Jab', 'opp', 0, 0
 	end
-end	
+end
 
 
 if $ARGS[0] = 'opp_spellcast':
@@ -470,14 +566,14 @@ end
 			act 'Surrender to your opponent': autocombat_surrender = 1 & gt 'ender', 'loss'
 		elseif autocombat_cheat = 1 and pcs_magick = 0:
 			xgt'boxing'
-		end		
+		end
 	elseif hod = 1:
 		!enemy attacks
 		'<font color = red><<$boydesc>> attacks</font>'
-		if autocombat_cheat = 0: 
+		if autocombat_cheat = 0:
 			act 'Continue': xgt'enemy','start'
 			act 'Surrender to your opponent': autocombat_surrender = 1 & gt 'ender', 'loss'
-		elseif autocombat_cheat = 1: 
+		elseif autocombat_cheat = 1:
 			xgt'enemy','start'
 		end
 	end