WHAT ARE YOU WORKING ON NOW?

Posts

I spent pretty much all day yesterday doing a full playthrough of EJ, rewriting unnecessarily long dialogue and fixing minor bugs. I still want to add more NPCs in a couple of the towns and spruce up some of the battles, but other than that, it's exactly where I want the game to be right now.

I've also been chipping away at sidequests over the past couple weeks, but are mostly still in the planning stage. I want each quest to feel just as strong as the rest of the story.
LockeZ
I'd really like to get rid of LockeZ. His play style is way too unpredictable. He's always like this too. If he ran a country, he'd just kill and imprison people at random until crime stopped.
5958
At the moment, most of the meaningful work for my upcoming RMXP game is on hold because I want to use Atoa's battle system, but it's still got some major bugs. Mostly, the fact that having only one party member causes animation bugs and random crashing. And also the fact that he hasn't finished the one feature I really want - battler movement.

So, I'm contenting myself with trying to get Wild Arms/Zelda style tools to work. I decided on a Secret of Mana style ring menu for tools, and downloaded that popular ring menu script. Then I managed to edit it to not wig out when the player gets too close to the edge of the screen, by dynamically shrinking the radius of the ring based on the player's location, to never get within 16 pixels of the edge of the screen. Stupid 16 pixel window border. If the player is actually standing on an edge tile, I have to move the whole ring one tile in, so it's not centered over the player any more. Fortunately, that should almost never actually happen, since stepping on the edge of a map should generally take you to the next map.

So, I think the tools menu is working now. Actual tools themselves have of course not even been started on yet.
LEECH
who am i and how did i get in here
2599
post=154408
Idida, I am about to blow your mind.

# Adds many new stats to the game.
#===============================================================================

#===============================================================================
# RPG::BaseItem
#===============================================================================

class RPG::BaseItem

#--------------------------------------------------------------------------
# public instance variables
#--------------------------------------------------------------------------
attr_accessor :str
attr_accessor :dex
attr_accessor :con
attr_accessor :int
attr_accessor :wis
attr_accessor :cha
attr_accessor :pie
attr_accessor :aagi
attr_accessor :wpwr
attr_accessor :spwr
attr_accessor :wdef
attr_accessor :sdef
attr_accessor :wacc
attr_accessor :sacc
attr_accessor :weva
attr_accessor :seva
attr_accessor :wcri
attr_accessor :scri
attr_accessor :wcdmg
attr_accessor :scdmg
attr_accessor :wpen
attr_accessor :spen
attr_accessor :hpwr
attr_accessor :hitk
attr_accessor :apwr
attr_accessor :adef
attr_accessor :epwr
attr_accessor :sub
attr_accessor :stat_per2

#--------------------------------------------------------------------------
# common cache: yem_cache_baseitem_eo2
#--------------------------------------------------------------------------
def yem_cache_baseitem_eo2
return if @cached_baseitem_eo2; @cached_baseitem_eo2 = true
@str = 0; @dex = 0; @con = 0; @int = 0; @wis = 0; @cha = 0; @pie = 0;
@aagi = 0; @wpwr = 0; @spwr = 0; @wdef = 0; @sdef = 0; @wacc = 0; @sacc = 0;
@weva = 0; @seva = 0; @wcri = 0; @scri = 0; @hpwr = 0; @hitk = 0; @apwr = 0;
@adef = 0; @epwr = 0; @sub = 0; @wcdmg = 0; @scdmg = 0; @wpen = 0; @spen = 0

@stat_per2 = {
:str => 0, :dex => 0, :con => 0, :int => 0, :wis => 0, :cha => 0, :pie => 0,
:aagi => 0, :wpwr => 0, :spwr => 0, :wdef => 0, :sdef => 0, :wacc => 0,
:sacc => 0, :weva => 0, :seva => 0, :wcri => 0, :scri => 0, :hpwr => 0,
:hitk => 0, :apwr => 0, :adef => 0, :epwr => 0, :sub => 0, :wcdmg => 0,
:scdmg => 0, :wpen => 0, :spen => 0}

self.note.split(/+/).each { |line|
case line
#---
when YEM::REGEXP::BASEITEM::STAT_SET
case $1.upcase
when "STR"; @str = $2.to_i
when "DEX"; @dex = $2.to_i
when "CON"; @con = $2.to_i
when "INT"; @int = $2.to_i
when "WIS"; @wis = $2.to_i
when "CHA"; @cha = $2.to_i
when "PIE"; @pie = $2.to_i
when "AAGI"; @aagi = $2.to_i
when "WPWR"; @wpwr = $2.to_i
when "SPWR"; @spwr = $2.to_i
when "WDEF"; @wdef = $2.to_i
when "SDEF"; @sdef = $2.to_i
when "WACC"; @wacc = $2.to_i
when "SACC"; @sacc = $2.to_i
when "WEVA"; @weva = $2.to_i
when "SEVA"; @seva = $2.to_i
when "WCRI"; @wcri = $2.to_i
when "SCRI"; @scri = $2.to_i
when "WCDMG"; @wcdmg = $2.to_i
when "SCDMG"; @scdmg = $2.to_i
when "WPEN"; @wpen = $2.to_i
when "SPEN"; @spen = $2.to_i
when "HPWR"; @hpwr = $2.to_i
when "HITK"; @hitk = $2.to_i
when "APWR"; @apwr = $2.to_i
when "ADEF"; @adef = $2.to_i
when "EPWR"; @epwr = $2.to_i
when "SUB"; @sub = $2.to_i
end
#---
when YEM::REGEXP::BASEITEM::STAT_PER
case $1.upcase
when "STR"; @stat_per2 = $2.to_i
when "DEX"; @stat_per2 = $2.to_i
when "CON"; @stat_per2 = $2.to_i
when "INT"; @stat_per2 = $2.to_i
when "WIS"; @stat_per2 = $2.to_i
when "CHA"; @stat_per2 = $2.to_i
when "PIE"; @stat_per2 = $2.to_i
when "AAGI"; @stat_per2 = $2.to_i
when "WPWR"; @stat_per2 = $2.to_i
when "SPWR"; @stat_per2 = $2.to_i
when "WDEF"; @stat_per2 = $2.to_i
when "SDEF"; @stat_per2 = $2.to_i
when "WACC"; @stat_per2 = $2.to_i
when "SACC"; @stat_per2 = $2.to_i
when "WEVA"; @stat_per2 = $2.to_i
when "SEVA"; @stat_per2 = $2.to_i
when "WCRI"; @stat_per2 = $2.to_i
when "SCRI"; @stat_per2 = $2.to_i
when "WCDMG"; @stat_per2 = $2.to_i
when "SCDMG"; @stat_per2 = $2.to_i
when "WPEN"; @stat_per2 = $2.to_i
when "SPEN"; @stat_per2 = $2.to_i
when "HPWR"; @stat_per2 = $2.to_i
when "HITK"; @stat_per2 = $2.to_i
when "APWR"; @stat_per2 = $2.to_i
when "ADEF"; @stat_per2 = $2.to_i
when "EPWR"; @stat_per2 = $2.to_i
when "SUB"; @stat_per2 = $2.to_i
end
#---
end
} # end self.note.split
end # yem_cache_baseitem_eo

end # RPG::BaseItem

#===============================================================================
# Scene_Title
#===============================================================================

class Scene_Title < Scene_Base

#--------------------------------------------------------------------------
# alias method: load_bt_database
#--------------------------------------------------------------------------
alias load_bt_database_eo2 load_bt_database unless $@
def load_bt_database
load_bt_database_eo2
load_eo2_cache
end

#--------------------------------------------------------------------------
# alias method: load_database
#--------------------------------------------------------------------------
alias load_database_eo2 load_database unless $@
def load_database
load_database_eo2
load_eo2_cache
end

#--------------------------------------------------------------------------
# new method: load_eo2_cache
#--------------------------------------------------------------------------
def load_eo2_cache
groups =
for group in groups
for obj in group
next if obj == nil
obj.yem_cache_baseitem_eo2 if obj.is_a?(RPG::BaseItem)
#~ obj.yem_cache_weapon_eo2 if obj.is_a?(RPG::Weapon)
#~ obj.yem_cache_armour_eo2 if obj.is_a?(RPG::Armor)
end
end
end

end # Scene_Title

#===============================================================================
# Game_Actor
#===============================================================================

class Game_Actor < Game_Battler

#--------------------------------------------------------------------------
# alias method: setup
#--------------------------------------------------------------------------
alias setup_eo2 setup unless $@
def setup(actor_id)
setup_eo2(actor_id)
end

#--------------------------------------------------------------------------
# overwrite method: base_maxhp
#--------------------------------------------------------------------------
def base_maxhp
n = eval(YEM::EQUIP::BASE_STAT)
percent = 100
for item in equips.compact
percent += aptitude(item.stat_per, :hp)
end
n *= percent / 100.0
for item in equips.compact
n += aptitude(item.maxhp, :hp)
end
return Integer(n)
end

#--------------------------------------------------------------------------
# overwrite method: base_maxmp
#--------------------------------------------------------------------------
def base_maxmp
n = eval(YEM::EQUIP::BASE_STAT)
percent = 100
for item in equips.compact
percent += aptitude(item.stat_per, :mp)
end
n *= percent / 100.0
for item in equips.compact
n += aptitude(item.maxmp, :mp)
end
return Integer(n)
end

#--------------------------------------------------------------------------
# overwrite method: base_atk
#--------------------------------------------------------------------------
def base_atk
# Not used!
n = 0
return Integer(n)
end

#--------------------------------------------------------------------------
# overwrite method: base_def
#--------------------------------------------------------------------------
def base_def
# Not used!
n = 0
return Integer(n)
end

#--------------------------------------------------------------------------
# overwrite method: base_spi
#--------------------------------------------------------------------------
def base_spi
# Not used!
n = 0
return Integer(n)
end

#--------------------------------------------------------------------------
# overwrite method: base_agi
#--------------------------------------------------------------------------
def base_agi
# Hello, my name is Speed/SPD. "Real" AGI is .aagi
n = (aagi - 5) * 2
for item in equips.compact
n += item.agi
end
percent = 100
for item in equips.compact
percent += item.stat_per
end
n *= percent / 100.0
return Integer(n)
end

def str
# Strength/STR
n = 20
case id
when 1; n = 22 # Fargo
when 2; n = 21 # Vi
when 3; n = 10 # Catalina
when 4; n = 26 # Bertram
when 5; n = 12 # Taryn
when 6; n = 22 # Dio
when 7; n = 28 # Roberto
when 8; n = 18 # Laufey
when 9; n = 22 # Garda
end
percent = 100
for item in equips.compact
percent += item.stat_per2
end
n *= percent / 100.0
for item in equips.compact
n += item.str
end
return Integer(n)
end

def dex
# Dexterity/DEX
n = 20
case id
when 1; n = 22 # Fargo
when 2; n = 22 # Vi
when 3; n = 20 # Catalina
when 4; n = 23 # Bertram
when 5; n = 20 # Taryn
when 6; n = 15 # Dio
when 7; n = 23 # Roberto
when 8; n = 28 # Laufey
when 9; n = 24 # Garda
end
percent = 100
for item in equips.compact
percent += item.stat_per2
end
n *= percent / 100.0
for item in equips.compact
n += item.dex
end
return Integer(n)
end

def con
# Constitution/CON
n = 20
case id
when 1; n = 22 # Fargo
when 2; n = 13 # Vi
when 3; n = 13 # Catalina
when 4; n = 29 # Bertram
when 5; n = 19 # Taryn
when 6; n = 23 # Dio
when 7; n = 17 # Roberto
when 8; n = 24 # Laufey
when 9; n = 26 # Garda
end
percent = 100
for item in equips.compact
percent += item.stat_per2
end
n *= percent / 100.0
for item in equips.compact
n += item.con
end
return Integer(n)
end

def int
# Intelligence/INT
n = 20
case id
when 1; n = 22 # Fargo
when 2; n = 21 # Vi
when 3; n = 28 # Catalina
when 4; n = 13 # Bertram
when 5; n = 25 # Taryn
when 6; n = 14 # Dio
when 7; n = 11 # Roberto
when 8; n = 23 # Laufey
when 9; n = 10 # Garda
end
percent = 100
for item in equips.compact
percent += item.stat_per2
end
n *= percent / 100.0
for item in equips.compact
n += item.int
end
return Integer(n)
end

def wis
# Wisdom/WIS
n = 20
case id
when 1; n = 22 # Fargo
when 2; n = 13 # Vi
when 3; n = 26 # Catalina
when 4; n = 18 # Bertram
when 5; n = 20 # Taryn
when 6; n = 22 # Dio
when 7; n = 13 # Roberto
when 8; n = 12 # Laufey
when 9; n = 26 # Garda
end
percent = 100
for item in equips.compact
percent += item.stat_per2
end
n *= percent / 100.0
for item in equips.compact
n += item.wis
end
return Integer(n)
end

def cha
# Charisma/CHA
n = 20
case id
when 1; n = 22 # Fargo
when 2; n = 15 # Vi
when 3; n = 24 # Catalina
when 4; n = 10 # Bertram
when 5; n = 28 # Taryn
when 6; n = 16 # Dio
when 7; n = 23 # Roberto
when 8; n = 22 # Laufey
when 9; n = 10 # Garda
end
percent = 100
for item in equips.compact
percent += item.stat_per2
end
n *= percent / 100.0
for item in equips.compact
n += item.cha
end
return Integer(n)
end

def pie
# Piety/PIE
n = 20
case id
when 1; n = 22 # Fargo
when 2; n = 24 # Vi
when 3; n = 13 # Catalina
when 4; n = 20 # Bertram
when 5; n = 12 # Taryn
when 6; n = 27 # Dio
when 7; n = 19 # Roberto
when 8; n = 13 # Laufey
when 9; n = 19 # Garda
end
percent = 100
for item in equips.compact
percent += item.stat_per2
end
n *= percent / 100.0
for item in equips.compact
n += item.pie
end
return Integer(n)
end

def aagi
# Agility/AGI
n = 20
case id
when 1; n = 22 # Fargo
when 2; n = 27 # Vi
when 3; n = 22 # Catalina
when 4; n = 17 # Bertram
when 5; n = 20 # Taryn
when 6; n = 18 # Dio
when 7; n = 22 # Roberto
when 8; n = 25 # Laufey
when 9; n = 19 # Garda
end
percent = 100
for item in equips.compact
percent += item.stat_per2
end
n *= percent / 100.0
for item in equips.compact
n += item.aagi
end
return Integer(n)
end

def wpwr
# Weapon Power/W-PWR
n = 0
for item in equips.compact
n += item.wpwr
end
mod = str * 5
n *= mod / 100.0
percent = 100
for item in equips.compact
percent += item.stat_per2
end
n *= percent / 100.0
return Integer(n)
end

def spwr
# Spell Power/S-PWR
n = 0
for item in equips.compact
n += item.spwr
end
mod = int * 5
n *= mod / 100.0
percent = 100
for item in equips.compact
percent += item.stat_per2
end
n *= percent / 100.0
return Integer(n)
end

def wdef
# Weapon Defense/W-DEF
n = 0
for item in equips.compact
n += item.wdef
end
mod = con * 5
n *= mod / 100.0
percent = 100
for item in equips.compact
percent += item.stat_per2
end
n *= percent / 100.0
return Integer(n)
end

def sdef
# Spell Defense/S-DEF
n = 0
for item in equips.compact
n += item.sdef
end
mod = wis * 5
n *= mod / 100.0
percent = 100
for item in equips.compact
percent += item.stat_per2
end
n *= percent / 100.0
return Integer(n)
end

def wacc
# Weapon Accuracy/W-ACC
n = 100
for item in equips.compact
n += item.wacc
end
mod = (dex + 10) * 3.34
n *= mod / 100.00
percent = 100
for item in equips.compact
percent += item.stat_per2
end
n *= percent / 100.0
return Integer(n)
end

def sacc
# Spell Accuracy/S-ACC
n = 100
for item in equips.compact
n += item.sacc
end
mod = (dex + 10) * 3.34
n *= mod / 100.0
percent = 100
for item in equips.compact
percent += item.stat_per2
end
n *= percent / 100.0
return Integer(n)
end

def weva
# Weapon Evasion/W-EVA
n = 5
for item in equips.compact
n += item.weva
end
mod = aagi * 5
n *= mod / 100.0
percent = 100
for item in equips.compact
percent += item.stat_per2
end
n *= percent / 100.0
return Integer(n)
end

def seva
# Spell Evasion/S-EVA
n = 5
for item in equips.compact
n += item.seva
end
mod = aagi * 5
n *= mod / 100.0
percent = 100
for item in equips.compact
percent += item.stat_per2
end
n *= percent / 100.0
return Integer(n)
end

def wcri
# Weapon Critical/W-CRI
n = 3
n += ((dex - 12) / 5) ^ 2.8
n = 1 if n < 1
for item in equips.compact
n += item.wcri
end
percent = 100
for item in equips.compact
percent += item.stat_per2
end
n *= percent / 100.0
return Integer(n)
end

def scri
# Spell Critical/S-CRI
n = 3
n += ((dex - 12) / 5) ^ 2.8
n = 1 if n < 1
for item in equips.compact
n += item.scri
end
percent = 100
for item in equips.compact
percent += item.stat_per2
end
n *= percent / 100.0
return Integer(n)
end

def wcdmg
# Weapon Critical Damage/W-CDMG
n = 5
n += str * (1.00 + level / 4)
for item in equips.compact
n += item.wcdmg
end
percent = 100
for item in equips.compact
percent += item.stat_per2
end
n *= percent / 100.0
return Integer(n)
end

def scdmg
# Spell Critical Damage/S-CDMG
n = 5
n += int * (1.00 + level / 3)
for item in equips.compact
n += item.scdmg
end
percent = 100
for item in equips.compact
percent += item.stat_per2
end
n *= percent / 100.0
return Integer(n)
end

def wpen
# Weapon Penetration/W-PEN
n = 0
for item in equips.compact
n += item.wpen
end
percent = 100
for item in equips.compact
percent += item.stat_per2
end
n *= percent / 100.0
return Integer(n)
end

def spen
# Spell Penetration/S-PEN
n = 0
for item in equips.compact
n += item.spen
end
percent = 100
for item in equips.compact
percent += item.stat_per2
end
n *= percent / 100.0
return Integer(n)
end

def hpwr
# Heal Power/H-PWR
n = pie
n += level * 4 * (pie - 5) / 15
for item in equips.compact
n += item.hpwr
end
percent = 100
for item in equips.compact
percent += item.stat_per2
end
n *= percent / 100.0
return Integer(n)
end

def hitk
# Heal Intake/H-ITK
n = con
n += level * 4 * con / 20
for item in equips.compact
n += item.hitk
end
percent = 100
for item in equips.compact
percent += item.stat_per2
end
n *= percent / 100.0
return Integer(n)
end

def apwr
# Ailment Power/A-PWR
n = cha
n += level * (cha / 5)
for item in equips.compact
n += item.apwr
end
percent = 100
for item in equips.compact
percent += item.stat_per2
end
n *= percent / 100.0
return Integer(n)
end

def adef
# Ailment Defense/A-DEF
n = wis
n += level * (wis / 5)
for item in equips.compact
n += item.adef
end
percent = 100
for item in equips.compact
percent += item.stat_per2
end
n *= percent / 100.0
return Integer(n)
end

def epwr
# Enchant Power/E-PWR
n = pie
n += level * (pie / 5)
for item in equips.compact
n += item.epwr
end
percent = 100
for item in equips.compact
percent += item.stat_per2
end
n *= percent / 100.0
return Integer(n)
end

def sub
# Subtlety/SUB
n = (cha - 5) * 2
for item in equips.compact
n += item.sub
end
percent = 100
for item in equips.compact
percent += item.stat_per2
end
n *= percent / 100.0
return Integer(n)
end

#--------------------------------------------------------------------------
# UNUSED REMNANTS (but not the last one)
#--------------------------------------------------------------------------
def hit
# Not used!
n = 0; return Integer(n)
end
def eva
# Not used!
n = 0; return Integer(n)
end
def cri
# Not used!
n = 0; return Integer(n)
end

#--------------------------------------------------------------------------
# overwrite method: odds
#--------------------------------------------------------------------------
def odds
n = 50 - sub
n = 1 if n < 1
return Integer(n)
end

end # Game_Actor

#===============================================================================
# Window_EquipStat
#===============================================================================

class Window_EquipStat < Window_Base

#--------------------------------------------------------------------------
# draw_actor_stats
#--------------------------------------------------------------------------
def draw_actor_stats
dx = 0; dy = 0
arrow = YEM::EQUIP::VOCAB
for stat in YEM::EQUIP::SHOWN_STATS
icon = Icon.stat(@actor, stat)
case stat
when :maxhp
text = "Health"
value2 = @actor.maxhp
value1 = @clone.maxhp
when :maxmp
text = "Energy"
value2 = @actor.maxmp
value1 = @clone.maxmp
when :str
text = "Strength"
value2 = @actor.str
value1 = @clone.str
when :dex
text = "Dexterity"
value2 = @actor.dex
value1 = @clone.dex
when :con
text = "Constitution"
value2 = @actor.con
value1 = @clone.con
when :int
text = "Intelligence"
value2 = @actor.int
value1 = @clone.int
when :wis
text = "Wisdom"
value2 = @actor.wis
value1 = @clone.wis
when :cha
text = "Charisma"
value2 = @actor.cha
value1 = @clone.cha
when :pie
text = "Piety"
value2 = @actor.pie
value1 = @clone.pie
when :aagi
text = "Agility"
value2 = @actor.aagi
value1 = @clone.aagi
when :wpwr
text = "Wpn Power"
value2 = @actor.wpwr
value1 = @clone.wpwr
when :spwr
text = "Spl Power"
value2 = @actor.spwr
value1 = @clone.spwr
when :wdef
text = "Wpn Defense"
value2 = @actor.wdef
value1 = @clone.wdef
when :sdef
text = "Spl Defense"
value2 = @actor.sdef
value1 = @clone.sdef
when :wacc
text = "Wpn Accuracy"
value2 = @actor.wacc
value1 = @clone.wacc
when :sacc
text = "Spl Accuracy"
value2 = @actor.sacc
value1 = @clone.sacc
when :weva
text = "Wpn Evasion"
value2 = @actor.weva
value1 = @clone.weva
when :seva
text = "Spl Evasion"
value2 = @actor.seva
value1 = @clone.seva
when :wcri
text = "Wpn Critical"
value2 = @actor.wcri
value1 = @clone.wcri
when :scri
text = "Spl Critical"
value2 = @actor.scri
value1 = @clone.scri
when :wpen
text = "Wpn Penetration"
value2 = @actor.wpen
value1 = @clone.wpen
when :spen
text = "Spl Penetation"
value2 = @actor.spen
value1 = @clone.spen
when :wcdmg
text = "Wpn Crit Dmg"
value2 = @actor.wcdmg
value1 = @clone.wcdmg
when :scdmg
text = "Spl Crit Dmg"
value2 = @actor.scdmg
value1 = @clone.scdmg
when :hpwr
text = "Heal Power"
value2 = @actor.hpwr
value1 = @clone.hpwr
when :hitk
text = "Heal Intake"
value2 = @actor.hitk
value1 = @clone.hitk
when :apwr
text = "Ailment Power"
value2 = @actor.apwr
value1 = @clone.apwr
when :adef
text = "Ailment Defense"
value2 = @actor.adef
value1 = @clone.adef
when :epwr
text = "Enchant Power"
value2 = @actor.epwr
value1 = @clone.epwr
when :sub
text = "Subtlety"
value2 = @actor.sub
value1 = @clone.sub
when :agi # Speed
text = "Speed"
value2 = @actor.agi
value1 = @clone.agi
else; next
end
next if value1 == value2
draw_icon(icon, dx, dy); dx += 24
self.contents.font.size = YEM::EQUIP::STAT_FONT_SIZE
self.contents.font.color = system_color
self.contents.draw_text(dx, dy, 60, WLH, text, 0); dx += 60
self.contents.font.color = normal_color
self.contents.draw_text(dx, dy, 45, WLH, value2, 2); dx += 45
self.contents.font.color = system_color
self.contents.font.size = Font.default_size
self.contents.draw_text(dx, dy, 30, WLH, arrow, 1); dx += 30
if @equip_index == nil or (@equip != nil and !@actor.equippable?(@equip))
self.contents.font.size = YEM::EQUIP::STAT_FONT_SIZE
self.contents.font.color = normal_color
self.contents.draw_text(dx, dy, 45, WLH, value2, 2)
end
dx = 0; dy += WLH
end
end

#--------------------------------------------------------------------------
# draw_clone_stats
#--------------------------------------------------------------------------
def draw_clone_stats
dx = 0; dy = 0
last_hp = @actor.hp
last_mp = @actor.mp
for stat in YEM::EQUIP::SHOWN_STATS
case stat
when :maxhp
value2 = @actor.maxhp
value1 = @clone.maxhp
when :maxmp
value2 = @actor.maxmp
value1 = @clone.maxmp
when :str
value2 = @actor.str
value1 = @clone.str
when :dex
value2 = @actor.dex
value1 = @clone.dex
when :con
value2 = @actor.con
value1 = @clone.con
when :int
value2 = @actor.int
value1 = @clone.int
when :wis
value2 = @actor.wis
value1 = @clone.wis
when :cha
value2 = @actor.cha
value1 = @clone.cha
when :pie
value2 = @actor.pie
value1 = @clone.pie
when :aagi
value2 = @actor.aagi
value1 = @clone.aagi
when :wpwr
value2 = @actor.wpwr
value1 = @clone.wpwr
when :spwr
value2 = @actor.spwr
value1 = @clone.spwr
when :wdef
value2 = @actor.wdef
value1 = @clone.wdef
when :sdef
value2 = @actor.sdef
value1 = @clone.sdef
when :wacc
value2 = @actor.wacc
value1 = @clone.wacc
when :sacc
value2 = @actor.sacc
value1 = @clone.sacc
when :weva
value2 = @actor.weva
value1 = @clone.weva
when :seva
value2 = @actor.seva
value1 = @clone.seva
when :wcri
value2 = @actor.wcri
value1 = @clone.wcri
when :scri
value2 = @actor.scri
value1 = @clone.scri
when :wpen
value2 = @actor.wpen
value1 = @clone.wpen
when :spen
value2 = @actor.spen
value1 = @clone.spen
when :wcdmg
value2 = @actor.wcdmg
value1 = @clone.wcdmg
when :scdmg
value2 = @actor.scdmg
value1 = @clone.scdmg
when :hpwr
value2 = @actor.hpwr
value1 = @clone.hpwr
when :hitk
value2 = @actor.hitk
value1 = @clone.hitk
when :apwr
value2 = @actor.apwr
value1 = @clone.apwr
when :adef
value2 = @actor.adef
value1 = @clone.adef
when :epwr
value2 = @actor.epwr
value1 = @clone.epwr
when :sub
value2 = @actor.sub
value1 = @clone.sub
when :agi # Speed
value2 = @actor.agi
value1 = @clone.agi
else; next
end
if value1 > value2
self.contents.font.color = power_up_color
elsif value1 < value2
self.contents.font.color = power_down_color
else
next# self.contents.font.color = normal_color
end
self.contents.font.size = YEM::EQUIP::STAT_FONT_SIZE
self.contents.draw_text(dx+159, dy, 45, WLH, value1, 2)
dx = 0; dy += WLH
end
@actor.hp = last_hp
@actor.mp = last_mp
end

end # Window_EquipStat

#===============================================================================
#
# END OF FILE
#
#===============================================================================

class Game_Battler

#--------------------------------------------------------------------------
# new method: make_damage_values
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# In this section, you can adjust the damage formulas for the pre-existing
# weapons, skills, and items or you can make your own. To make a weapon,
# skill, or item call a different damage formula from the default, use the
# following tag in their notebox:
#
# <damage: phrase>
#
# Replace phrase with one of the values scene below. If you wish for the
# damage formula to continue multiple parts, just add more of the tag above
# and the game will calculate the damage formulas in that order.
#--------------------------------------------------------------------------
def make_damage_values(user, obj = nil)
attacker = caster = user; defender = target = self
variance = (obj == nil) ? 20 : obj.variance
dmg_hash = YEM::BATTLE_ENGINE::DAMAGE_HASH
formulas = (obj == nil) ? user.attack_formulas : obj.damage_formula
formulas +=
return if formulas.size <= 1
for formula in formulas
#---
hp_dmg = 0; mp_dmg = 0 # Reset Damage Values
healing_formula = false # Reset Healing Formula
ignore_elements = false # Reset Element Ignore
ignore_variance = false # Reset Variance Ignore
ignore_critical = false # Reset Critical Ignore
ignore_guarding = false # Reset Guard Ignore
ignore_inflates = false # Reset damage inflation
case formula
#----------------------------------------------------------------------
# <damage: phrase weapon>
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# This is the damage formula for regular attacks. Applied for weapons
# and enemy attacks. Replace "phrase" with the respect stat you wish
# for the normal attack to be based off of.
# --- Example --- - - - - - - - - - - - - - - - - - - - - - - - - - - -
# <damage: spi weapon>
# <damage: agi weapon>
# --- WARNING --- - - - - - - - - - - - - - - - - - - - - - - - - - - -
# This is a default-used formula. Do not remove this.
#----------------------------------------------------------------------
when /(.*)(?:WEAPON|ATTACK)/i
atkstat = attacker.wpwr; defstat = defender.wdef; penstat = 100 - attacker.wpen
defstat = defstat * penstat / 100.0
hp_dmg = atkstat - defstat
hp_dmg = rand(2) + 1 if hp_dmg <= 0
calc_cri(attacker) if hp_dmg > 0

#----------------------------------------------------------------------
# <damage: normal>
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# If you decide to use the normal skill/item formula, place this tag
# inside of the object's notebox. Note that this will not work for
# weapons and enemy attacks.
#
# Although the <damage: normal> tag has no alternatives, there are tags
# that can alter the effects of this formula. They are:
# <atk_f: x%>
# <def_f: x%>
# <spi_f: x%>
# <agi_f: x%>
# These values will base the damage formula around the specific stat
# to x%. For ATK_F and SPI_F, this allows you to break the editor limit
# of 200% and to be able to go higher. Using DEF_F and AGI_F, you can
# have skills determine their damage/healing based on the user's def
# and agi stats instead of limited to just atk and spi.
# --- Example --- - - - - - - - - - - - - - - - - - - - - - - - - - - -
# <atk_f: 500%>
# <def_f: 100%>
# --- WARNING --- - - - - - - - - - - - - - - - - - - - - - - - - - - -
# This is a default-used formula. Do not remove this.
#----------------------------------------------------------------------
when /(?:NORMAL|NORMAL SKILL|NORMAL ITEM)/
next if obj == nil
damage = obj.base_damage
next if damage == 0
if damage > 0
if obj.physical_attack
atkstat = attacker.wpwr; defstat = defender.wdef
penstat = 100 - attacker.wpen
defstat = .max
else
atkstat = attacker.spwr; defstat = defender.sdef
penstat = 100 - attacker.spen
end
defstat = defstat * penstat / 100.0
defstat = 0 if obj.ignore_defense
damage = atkstat - defstat
damage *= obj.base_damage / 100.0
elsif damage < 0
healing_formula = true
ignore_guarding = true
damage = attacker.hpwr + defender.hitk
damage *= obj.base_damage / -100.0
end
if obj.damage_to_mp
mp_dmg = damage
else
hp_dmg = damage
end
calc_cri(user, obj) if hp_dmg != 0 or mp_dmg != 0

#----------------------------------------------------------------------
# <damage: -x% current hp> <damage: +x% current hp>
# <damage: -x% current mp> <damage: +x% current mp>
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# This will cause the target to lose x% of their current HP or MP. If
# a negative value is used for x, then the target will take damage of
# that percent. If the value is positive, the target will recover that
# percent instead. The damage is unaffected by variance, criticals, and
# elements and guarding.
# --- Example --- - - - - - - - - - - - - - - - - - - - - - - - - - - -
# <damage: +50% current hp>
# <damage: -25% current mp>
#----------------------------------------------------------------------
when /(\d+)()CURRENT(.*)/i
percent = $1.to_i
case $3.to_s
when "HP"
hp_dmg = target.hp * percent / -100
when "MP", "SP"
mp_dmg = target.mp * percent / -100
end
healing_formula = true if percent > 0
ignore_elements = true
ignore_variance = true
ignore_critical = true
ignore_guarding = true
ignore_inflates = true

#----------------------------------------------------------------------
# <damage: -x% maxhp> <damage: +x% maxhp>
# <damage: -x% maxmp> <damage: +x% maxmp>
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# This will cause the target to lose x% of their maximum HP or MP. If
# a negative value is used for x, then the target will take damage of
# that percent. If the value is positive, the target will recover that
# percent instead. The damage is unaffected by variance, criticals,
# elements and guarding.
# --- Example --- - - - - - - - - - - - - - - - - - - - - - - - - - - -
# <damage: +50% maxhp>
# <damage: -25% maxmp>
#----------------------------------------------------------------------
when /(\d+)()MAX(.*)/i
percent = $1.to_i
case $3.to_s
when "HP"
hp_dmg = target.maxhp * percent / -100
when "MP", "SP"
mp_dmg = target.maxmp * percent / -100
end
healing_formula = true if percent > 0
ignore_elements = true
ignore_variance = true
ignore_critical = true
ignore_guarding = true
ignore_inflates = true

#----------------------------------------------------------------------
# <damage: hp shock>
# <damage: mp shock>
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# This will deal damage based on the difference between the user's HP
# or MP and the target's HP or MP. If damage is dealt to HP, then the
# minimum damage possible is 1. If the damage is dealt to MP, there is
# minimum damage is 0. The damage is unaffected by variance, criticals,
# elements, and guarding.
#----------------------------------------------------------------------
when /(.*)SHOCK/i
percent = $1.to_i
case $1.to_s
when "HP"
hp_dmg = caster.hp - target.hp
hp_dmg = .max
when "MP", "SP"
mp_dmg = caster.mp - target.mp
hp_dmg = .max
end
ignore_elements = true
ignore_variance = true
ignore_critical = true
ignore_guarding = true
ignore_inflates = true

#----------------------------------------------------------------------
# <damage: x% rate>
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# This will inflate or deflate all the damage that's been done up to
# this point in the formula to x%. This tag does not deal damage on its
# own, but instead, augments the currently existing damage done. This
# affects both HP and MP damage totalled up to the current point.
# --- Example --- - - - - - - - - - - - - - - - - - - - - - - - - - - -
# <damage: 150% rate>
#----------------------------------------------------------------------
when /(\d+)()(?:RATE|INFLATE|DEFLATE)/i
percent = $1.to_i
@hp_damage = @hp_damage * percent / 100
@mp_damage = @mp_damage * percent / 100
next

#----------------------------------------------------------------------
# This section is dedicated to common damage adjusting. By default,
# nothing will be adjusted, but in the event you wish to adjust the
# damage, it can be done here as every attack, skill, and item will
# always run this case once and at the end of all the formulas.
#----------------------------------------------------------------------
when "COMMON DAMAGE ADJUST"
# Insert whatever common damage adjustments you want made here.

#----------------------------------------------------------------------
# Stop editting past this point.
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Values created in the damage formula will be applied here to total
# HP and MP damage after undergoing variance and elemental adjustments.
#----------------------------------------------------------------------
else; next
end
#---
hp_dmg = apply_max_min(hp_dmg, healing_formula ? 2 : 1, obj)
#---
unless ignore_elements
hp_dmg = apply_element_rate(user, hp_dmg, obj)
mp_dmg = apply_element_rate(user, mp_dmg, obj)
end
@critical = false if $game_temp.force_critical == false
if (@critical and !ignore_critical) or $game_temp.force_critical
@critical = true
hp_dmg = apply_critical(hp_dmg, user, obj)
mp_dmg = apply_critical(mp_dmg, user, obj)
end
unless ignore_inflates
hp_dmg = apply_state_rates(hp_dmg, user, :hp)
mp_dmg = apply_state_rates(mp_dmg, user, :mp)
end
unless ignore_variance
hp_dmg = apply_variance(hp_dmg, variance)
mp_dmg = apply_variance(mp_dmg, variance)
end
unless ignore_guarding
hp_dmg = apply_guard(hp_dmg)
mp_dmg = apply_guard(mp_dmg)
end
#---
@hp_damage += Integer(hp_dmg)
@mp_damage += Integer(mp_dmg)
#---
end
end

#--------------------------------------------------------------------------
# new method: apply_critical
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# The following method below is a simplistic method that allows you to
# adjust the critical multiplier formula if desired.
#--------------------------------------------------------------------------
def apply_critical(damage, user, obj = nil)
modifier = user.wcdmg
if obj != nil
modifier = user.scdmg unless obj.physical_attack
modifier *= obj.base_damage / 100.0
end
damage += Integer(modifier)
return damage
end

#--------------------------------------------------------------------------
# overwrite method: calc_hit
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# This method has been extracted from the default base scripts to allow for
# easier and quicker access to modifying hit rate calculations.
#--------------------------------------------------------------------------
def calc_hit(user, obj = nil)
if obj == nil # for a normal attack
physical = true
elsif obj.is_a?(RPG::Skill) # for a skill
physical = obj.physical_attack
else
return 100
end
if physical # for a physical attack
hit = user.wacc
hit -= self.weva
else
hit = user.sacc
hit -= self.seva
end
return hit
end

#--------------------------------------------------------------------------
# overwrite method: calc_eva
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# This method has been extracted from the default base scripts to allow for
# easier and quicker access to modifying evasion calculations.
#--------------------------------------------------------------------------
def calc_eva(user, obj = nil)
return 0
end

#--------------------------------------------------------------------------
# new method: calc_cri
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# This method has been extracted from the default base scripts to allow for
# easier and quicker access to modifying critical calculations.
#--------------------------------------------------------------------------
def calc_cri(user, obj = nil)
return if @critical
value = 0
if obj == nil
physical = true
else
value += obj.cri_rate unless obj.cri_rate == nil
physical = obj.physical_attack
end
if physical
value += user.wcri
else
value += user.scri
end
@critical = (rand(100) < value)
end

end # Game_Battler


chaos: Yeah, yeah we do.

I am currently setting up enemy basic actions and listening to... KH2 music. The hell?

Philadelphia eschews normal attacks in favor of "basic actions" - skills that cost nothing to execute. This means that instead of mashing Boring Slash, you're constantly throwing fireballs, laying toxins down and doing crazy tiger dives. However, enemies are the exact same way!

Yes, Karsuman and I's project/revival is named after a famous city.



Why is there one called pie?
LouisCyphre
can't make a bad game if you don't finish any games
4523
Piety effects the power of outgoing healing along with some other things, in Philidelphia.
LEECH
who am i and how did i get in here
2599
Damn i hoped it was pie.

That would be a kick ass stat.
post=154544
Piety effects the power of outgoing healing along with some other things, in Philidelphia.


Sounds like faith from Demon's Souls. It's a good idea to seperate white magic from black magic whenever possible.
slash
APATHY IS FOR COWARDS
4158
Just revamped my intro from a scrolling monologue to a guy getting thrown off a building.

Now I'm going to code battle events named "Guts" for every character.
Then I have to re-do every battle so far, and either add some new ones or find a new way to threaten people.
Then I'm going to remove every monster from a forest and replace it with cooler monsters.
Then I'm going to re-map my main city.

THEN design the next boss battle.
slash
APATHY IS FOR COWARDS
4158
Double POST!!
Ocean
Resident foodmonster
11991
Spriiiites and more spriiites. I added a few male characters to Azulea, I didn't have many of them around before. Still only 3 girls as playables though.
post=154544
Piety effects the power of outgoing healing along with some other things, in Philidelphia.
What about in Brooklyn? or Boston?
At the moment I'm getting frustrated over the ammount of database I still have to do and how the numbers don't seem to behave. Let's just say I'm trying to stay calm.
Planning out details for this idea I have called " A Day in The Life of Barry the Mouse".

Writing stuff down on paper, plus doing some rough sprites on my computer. Who knows, I might actually finish this one.

Also working on a soundtrack to another game.

Trying to make RM2k3 battles that aren't boring and awful. At first I tried to use skill switches and common events and monster party event sheets to sort of bypass all the generic algorithms and have more control over / fun with things including little announcement boxes (phillip made a sad face! mome beast was unaffected) but it wasn't really working. I'm just trying for some kind of balance with regular skills and things and relegating everything else to a special MYSTERY command which makes mysterious things happen.

I wish I was more of a planner than an improviser, because when it comes to video game dialogue the former is easier.

In anycase, I'm mapping, which is damn well irritating when it comes to outside maps, specially with the tileset I'm using...
Thankfully the outside areas are gonna total to 2-3 maps at most, seeing as pretty much all of the game is gonna be spent inside a tower (Huzzah for originallity!) and the outside section is the intro.
Just finished the first level of EQ: Get the Shiny and I've started working on the second.

I know my mapping is atrocious so I have to make the rest of the game as fun as possible to make for it.
Some cutscenes for MMZ. I'm finishing up the first one in a whole year, yay! =D


I think progress from here on out will be pretty consistent.
I found several bugs in my CBS and CMS and fixing them after that It's back to more spriting! Yay.
Writting a little bit more of my project story! ;)