;;; Combat systems implemented here (defvar *combat-menu-options-display* NIL) (defvar *combat-opt-lookup NIL) ;; Combat options: ;; Attack (with specific weapon) ;; Regen shields ;; - (add value to rep-shield-val at cost of overcharing ;; - (overcharing can cause warp field to go into low-power) ;; Overcharge gun at cost of overcharing reactor ;; Attempt to flee into the warp ;; - (requires full power / overcharged ;; - (can also cause reactor to go low power, which removes ability to regen/overcharge) (defun combat-loop (sector) "The main loop responsbile for resolving combat situations") (defun calculate-damage (attacker-obj target-obj attacker-weapon) "Calculate damage attacker will do given attacker stats, target stats, and weapon stats" (let ((target-defense-value (+ (rep-shield-val target-obi) (armor-val target-obj)))))) (defun ship-attack (attacker-obj target-obj attacker-weapon) "Given a ship thats attacking, a target, and the attackers chosen weapon resolve the combat by calculating shield/hull damage and resolving resources." (let ((calculated-damage- ; This value needs to resolve all buffs and debuffs NIL))))