mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-07 21:24:59 +00:00
Bug fixes: interacting with a follower in the same tile as the player; underline/strikethrough line mispositionings and added shadows to those lines; Toxic/Flame Orb replacing existing status problems; grown berry plants looking like sprouts; pbShowCommandsWithHelp not deactivating message windows it creates
This commit is contained in:
@@ -278,14 +278,8 @@ class Game_FollowerFactory
|
|||||||
facing_tile = $map_factory.getFacingTile
|
facing_tile = $map_factory.getFacingTile
|
||||||
# Assumes player is 1x1 tile in size
|
# Assumes player is 1x1 tile in size
|
||||||
each_follower do |event, follower|
|
each_follower do |event, follower|
|
||||||
if event.at_coordinate?($game_player.x, $game_player.y) # Underneath player
|
next if !facing_tile || event.map.map_id != facing_tile[0] ||
|
||||||
next if !event.over_trigger?
|
!event.at_coordinate?(facing_tile[1], facing_tile[2]) # Not on facing tile
|
||||||
elsif facing_tile && event.map.map_id == facing_tile[0] &&
|
|
||||||
event.at_coordinate?(facing_tile[1], facing_tile[2]) # On facing tile
|
|
||||||
next if event.over_trigger?
|
|
||||||
else # Somewhere else
|
|
||||||
next
|
|
||||||
end
|
|
||||||
next if event.jumping?
|
next if event.jumping?
|
||||||
follower.interact(event)
|
follower.interact(event)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -935,58 +935,67 @@ def drawBitmapBuffer(chars)
|
|||||||
end
|
end
|
||||||
|
|
||||||
def drawSingleFormattedChar(bitmap, ch)
|
def drawSingleFormattedChar(bitmap, ch)
|
||||||
if ch[5] # If a graphic
|
if ch[5] # If a graphic
|
||||||
graphic = Bitmap.new(ch[0])
|
graphic = Bitmap.new(ch[0])
|
||||||
graphicRect = ch[15]
|
graphicRect = ch[15]
|
||||||
bitmap.blt(ch[1], ch[2], graphic, graphicRect, ch[8].alpha)
|
bitmap.blt(ch[1], ch[2], graphic, graphicRect, ch[8].alpha)
|
||||||
graphic.dispose
|
graphic.dispose
|
||||||
|
return
|
||||||
|
end
|
||||||
|
bitmap.font.bold = ch[6] if bitmap.font.bold != ch[6]
|
||||||
|
bitmap.font.italic = ch[7] if bitmap.font.italic != ch[7]
|
||||||
|
bitmap.font.name = ch[12] if bitmap.font.name != ch[12]
|
||||||
|
bitmap.font.size = ch[13] if bitmap.font.size != ch[13]
|
||||||
|
if ch[9] # shadow
|
||||||
|
if ch[10] # underline
|
||||||
|
bitmap.fill_rect(ch[1], ch[2] + ch[4] - [(ch[4] - bitmap.font.size) / 2, 0].max - 2,
|
||||||
|
ch[3], 4, ch[9])
|
||||||
|
end
|
||||||
|
if ch[11] # strikeout
|
||||||
|
bitmap.fill_rect(ch[1], ch[2] + 2 + (ch[4] / 2), ch[3], 4, ch[9])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if ch[0] == "\n" || ch[0] == "\r" || ch[0] == " " || isWaitChar(ch[0])
|
||||||
|
bitmap.font.color = ch[8] if bitmap.font.color != ch[8]
|
||||||
else
|
else
|
||||||
bitmap.font.size = ch[13] if bitmap.font.size != ch[13]
|
offset = 0
|
||||||
if ch[0] != "\n" && ch[0] != "\r" && ch[0] != " " && !isWaitChar(ch[0])
|
if ch[9] # shadow
|
||||||
bitmap.font.bold = ch[6] if bitmap.font.bold != ch[6]
|
bitmap.font.color = ch[9]
|
||||||
bitmap.font.italic = ch[7] if bitmap.font.italic != ch[7]
|
if (ch[16] & 1) != 0 # outline
|
||||||
bitmap.font.name = ch[12] if bitmap.font.name != ch[12]
|
offset = 1
|
||||||
offset = 0
|
bitmap.draw_text(ch[1], ch[2], ch[3] + 2, ch[4], ch[0])
|
||||||
if ch[9] # shadow
|
bitmap.draw_text(ch[1], ch[2] + 1, ch[3] + 2, ch[4], ch[0])
|
||||||
bitmap.font.color = ch[9]
|
bitmap.draw_text(ch[1], ch[2] + 2, ch[3] + 2, ch[4], ch[0])
|
||||||
if (ch[16] & 1) != 0 # outline
|
bitmap.draw_text(ch[1] + 1, ch[2], ch[3] + 2, ch[4], ch[0])
|
||||||
offset = 1
|
bitmap.draw_text(ch[1] + 1, ch[2] + 2, ch[3] + 2, ch[4], ch[0])
|
||||||
bitmap.draw_text(ch[1], ch[2], ch[3] + 2, ch[4], ch[0])
|
bitmap.draw_text(ch[1] + 2, ch[2], ch[3] + 2, ch[4], ch[0])
|
||||||
bitmap.draw_text(ch[1], ch[2] + 1, ch[3] + 2, ch[4], ch[0])
|
bitmap.draw_text(ch[1] + 2, ch[2] + 1, ch[3] + 2, ch[4], ch[0])
|
||||||
bitmap.draw_text(ch[1], ch[2] + 2, ch[3] + 2, ch[4], ch[0])
|
bitmap.draw_text(ch[1] + 2, ch[2] + 2, ch[3] + 2, ch[4], ch[0])
|
||||||
bitmap.draw_text(ch[1] + 1, ch[2], ch[3] + 2, ch[4], ch[0])
|
elsif (ch[16] & 2) != 0 # outline 2
|
||||||
bitmap.draw_text(ch[1] + 1, ch[2] + 2, ch[3] + 2, ch[4], ch[0])
|
offset = 2
|
||||||
bitmap.draw_text(ch[1] + 2, ch[2], ch[3] + 2, ch[4], ch[0])
|
bitmap.draw_text(ch[1], ch[2], ch[3] + 4, ch[4], ch[0])
|
||||||
bitmap.draw_text(ch[1] + 2, ch[2] + 1, ch[3] + 2, ch[4], ch[0])
|
bitmap.draw_text(ch[1], ch[2] + 2, ch[3] + 4, ch[4], ch[0])
|
||||||
bitmap.draw_text(ch[1] + 2, ch[2] + 2, ch[3] + 2, ch[4], ch[0])
|
bitmap.draw_text(ch[1], ch[2] + 4, ch[3] + 4, ch[4], ch[0])
|
||||||
elsif (ch[16] & 2) != 0 # outline 2
|
bitmap.draw_text(ch[1] + 2, ch[2], ch[3] + 4, ch[4], ch[0])
|
||||||
offset = 2
|
bitmap.draw_text(ch[1] + 2, ch[2] + 4, ch[3] + 4, ch[4], ch[0])
|
||||||
bitmap.draw_text(ch[1], ch[2], ch[3] + 4, ch[4], ch[0])
|
bitmap.draw_text(ch[1] + 4, ch[2], ch[3] + 4, ch[4], ch[0])
|
||||||
bitmap.draw_text(ch[1], ch[2] + 2, ch[3] + 4, ch[4], ch[0])
|
bitmap.draw_text(ch[1] + 4, ch[2] + 2, ch[3] + 4, ch[4], ch[0])
|
||||||
bitmap.draw_text(ch[1], ch[2] + 4, ch[3] + 4, ch[4], ch[0])
|
bitmap.draw_text(ch[1] + 4, ch[2] + 4, ch[3] + 4, ch[4], ch[0])
|
||||||
bitmap.draw_text(ch[1] + 2, ch[2], ch[3] + 4, ch[4], ch[0])
|
else
|
||||||
bitmap.draw_text(ch[1] + 2, ch[2] + 4, ch[3] + 4, ch[4], ch[0])
|
bitmap.draw_text(ch[1] + 2, ch[2], ch[3] + 2, ch[4], ch[0])
|
||||||
bitmap.draw_text(ch[1] + 4, ch[2], ch[3] + 4, ch[4], ch[0])
|
bitmap.draw_text(ch[1], ch[2] + 2, ch[3] + 2, ch[4], ch[0])
|
||||||
bitmap.draw_text(ch[1] + 4, ch[2] + 2, ch[3] + 4, ch[4], ch[0])
|
bitmap.draw_text(ch[1] + 2, ch[2] + 2, ch[3] + 2, ch[4], ch[0])
|
||||||
bitmap.draw_text(ch[1] + 4, ch[2] + 4, ch[3] + 4, ch[4], ch[0])
|
|
||||||
else
|
|
||||||
bitmap.draw_text(ch[1] + 2, ch[2], ch[3] + 2, ch[4], ch[0])
|
|
||||||
bitmap.draw_text(ch[1], ch[2] + 2, ch[3] + 2, ch[4], ch[0])
|
|
||||||
bitmap.draw_text(ch[1] + 2, ch[2] + 2, ch[3] + 2, ch[4], ch[0])
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
bitmap.font.color = ch[8] if bitmap.font.color != ch[8]
|
|
||||||
bitmap.draw_text(ch[1] + offset, ch[2] + offset, ch[3], ch[4], ch[0])
|
|
||||||
elsif bitmap.font.color != ch[8]
|
|
||||||
bitmap.font.color = ch[8]
|
|
||||||
end
|
|
||||||
if ch[10] # underline
|
|
||||||
bitmap.fill_rect(ch[1], ch[2] + ch[4] - 4 - [(ch[4] - bitmap.font.size) / 2, 0].max - 2,
|
|
||||||
ch[3] - 2, 2, ch[8])
|
|
||||||
end
|
|
||||||
if ch[11] # strikeout
|
|
||||||
bitmap.fill_rect(ch[1], ch[2] + (ch[4] / 2) - 4, ch[3] - 2, 2, ch[8])
|
|
||||||
end
|
end
|
||||||
|
bitmap.font.color = ch[8] if bitmap.font.color != ch[8]
|
||||||
|
bitmap.draw_text(ch[1] + offset, ch[2] + offset, ch[3], ch[4], ch[0])
|
||||||
|
end
|
||||||
|
if ch[10] # underline
|
||||||
|
bitmap.fill_rect(ch[1], ch[2] + ch[4] - [(ch[4] - bitmap.font.size) / 2, 0].max - 2,
|
||||||
|
ch[3] - 2, 2, ch[8])
|
||||||
|
end
|
||||||
|
if ch[11] # strikeout
|
||||||
|
bitmap.fill_rect(ch[1], ch[2] + 2 + (ch[4] / 2), ch[3] - 2, 2, ch[8])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -819,7 +819,7 @@ def pbShowCommandsWithHelp(msgwindow, commands, help, cmdIfCancel = 0, defaultCm
|
|||||||
Input.update
|
Input.update
|
||||||
end
|
end
|
||||||
msgwin.letterbyletter = oldlbl
|
msgwin.letterbyletter = oldlbl
|
||||||
msgwin.dispose if !msgwindow
|
pbDisposeMessageWindow(msgwin) if !msgwindow
|
||||||
return ret
|
return ret
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ class Battle::Battler
|
|||||||
|
|
||||||
def pbCanInflictStatus?(newStatus, user, showMessages, move = nil, ignoreStatus = false)
|
def pbCanInflictStatus?(newStatus, user, showMessages, move = nil, ignoreStatus = false)
|
||||||
return false if fainted?
|
return false if fainted?
|
||||||
selfInflicted = (user && user.index == @index)
|
self_inflicted = (user && user.index == @index) # Rest and Flame Orb/Toxic Orb only
|
||||||
# Already have that status problem
|
# Already have that status problem
|
||||||
if self.status == newStatus && !ignoreStatus
|
if self.status == newStatus && !ignoreStatus
|
||||||
if showMessages
|
if showMessages
|
||||||
@@ -41,13 +41,13 @@ class Battle::Battler
|
|||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
# Trying to replace a status problem with another one
|
# Trying to replace a status problem with another one
|
||||||
if self.status != :NONE && !ignoreStatus && !selfInflicted
|
if self.status != :NONE && !ignoreStatus && !(self_inflicted && move) # Rest can replace a status problem
|
||||||
@battle.pbDisplay(_INTL("It doesn't affect {1}...", pbThis(true))) if showMessages
|
@battle.pbDisplay(_INTL("It doesn't affect {1}...", pbThis(true))) if showMessages
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
# Trying to inflict a status problem on a Pokémon behind a substitute
|
# Trying to inflict a status problem on a Pokémon behind a substitute
|
||||||
if @effects[PBEffects::Substitute] > 0 && !(move && move.ignoresSubstitute?(user)) &&
|
if @effects[PBEffects::Substitute] > 0 && !(move && move.ignoresSubstitute?(user)) &&
|
||||||
!selfInflicted
|
!self_inflicted
|
||||||
@battle.pbDisplay(_INTL("It doesn't affect {1}...", pbThis(true))) if showMessages
|
@battle.pbDisplay(_INTL("It doesn't affect {1}...", pbThis(true))) if showMessages
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
@@ -105,7 +105,7 @@ class Battle::Battler
|
|||||||
immAlly = nil
|
immAlly = nil
|
||||||
if Battle::AbilityEffects.triggerStatusImmunityNonIgnorable(self.ability, self, newStatus)
|
if Battle::AbilityEffects.triggerStatusImmunityNonIgnorable(self.ability, self, newStatus)
|
||||||
immuneByAbility = true
|
immuneByAbility = true
|
||||||
elsif selfInflicted || !@battle.moldBreaker
|
elsif self_inflicted || !@battle.moldBreaker
|
||||||
if abilityActive? && Battle::AbilityEffects.triggerStatusImmunity(self.ability, self, newStatus)
|
if abilityActive? && Battle::AbilityEffects.triggerStatusImmunity(self.ability, self, newStatus)
|
||||||
immuneByAbility = true
|
immuneByAbility = true
|
||||||
else
|
else
|
||||||
@@ -163,7 +163,7 @@ class Battle::Battler
|
|||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
# Safeguard immunity
|
# Safeguard immunity
|
||||||
if pbOwnSide.effects[PBEffects::Safeguard] > 0 && !selfInflicted && move &&
|
if pbOwnSide.effects[PBEffects::Safeguard] > 0 && !self_inflicted && move &&
|
||||||
!(user && user.hasActiveAbility?(:INFILTRATOR))
|
!(user && user.hasActiveAbility?(:INFILTRATOR))
|
||||||
@battle.pbDisplay(_INTL("{1}'s team is protected by Safeguard!", pbThis)) if showMessages
|
@battle.pbDisplay(_INTL("{1}'s team is protected by Safeguard!", pbThis)) if showMessages
|
||||||
return false
|
return false
|
||||||
|
|||||||
@@ -259,7 +259,8 @@ class BerryPlantSprite
|
|||||||
when 2 then @event.turn_down # X sprouted
|
when 2 then @event.turn_down # X sprouted
|
||||||
when 3 then @event.turn_left # X taller
|
when 3 then @event.turn_left # X taller
|
||||||
when 4 then @event.turn_right # X flowering
|
when 4 then @event.turn_right # X flowering
|
||||||
when 5 then @event.turn_up # X berries
|
else
|
||||||
|
@event.turn_up if berry_plant.growth_stage >= 5 # X berries
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@event.character_name = "Object ball"
|
@event.character_name = "Object ball"
|
||||||
|
|||||||
Reference in New Issue
Block a user