Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ################################################################################
- #SCRIPT DE INTERFAZ DE VIDA
- #Créditos a Polectron
- #
- #Este script permite mostrar una interfaz de vida al jugador dibujando un gráfico.
- #Fue desarrollado para un taller de la comunidad de PokéLiberty como ejemplo
- #de mecánica.
- #
- #Más información en: https://newpokeliberty.blogspot.com
- #o en el discord https://discord.gg/8BQfSkD
- ################################################################################
- class PokeBattle_Trainer
- attr_accessor :pv
- def pv
- @pv = 100 if !@pv
- return @pv
- end
- end
- module PBTerrain
- ToxicWater = 20
- class << self
- alias isWaterOriginal? isWater?
- alias isPassableWaterOriginal? isPassableWater?
- alias isJustWaterOriginal? isJustWater?
- end
- def PBTerrain.isWater?(tag)
- return PBTerrain.isWaterOriginal?(tag) ||
- tag==PBTerrain::ToxicWater
- end
- def PBTerrain.isPassableWater?(tag)
- return PBTerrain.isPassableWaterOriginal?(tag) ||
- tag==PBTerrain::ToxicWater
- end
- def PBTerrain.isJustWater?(tag)
- return PBTerrain.isJustWaterOriginal?(tag) ||
- tag==PBTerrain::ToxicWater
- end
- def PBTerrain.isToxic?(tag)
- return tag==PBTerrain::ToxicWater
- end
- end
- Events.onStepTakenTransferPossible+=proc {|sender,e|
- if $PokemonGlobal.stepcount % 1 == 0
- tag = pbGetTerrainTag($game_player)
- if PBTerrain.isToxic?(tag)
- $Trainer.pv-=1
- $Trainer.pv=0 if $Trainer.pv<0
- end
- end
- }
- class Game_Player
- alias update_original update
- def update
- if PBTerrain.isToxic?(pbGetTerrainTag)
- @move_speed = $RPGVX ? 3.5 : 2.8
- end
- update_original
- end
- end
- class Spriteset_Map
- class Life_HUD
- # Make as 'true' to only show HUD in the pause menu
- DRAWONLYINMENU=false
- # Make as 'false' to don't show the hp bars
- SHOWHPBARS=true
- # When above 0, only displays HUD when this switch is on.
- SWITCHNUMBER = 0
- def initialize(viewport1)
- @viewport1 = viewport1
- @sprites = {}
- @yposition = Graphics.height-64
- @zposition = 99999999
- end
- def showHUD?
- return (
- $Trainer &&
- (SWITCHNUMBER<=0 || $game_switches[SWITCHNUMBER]) &&
- (!DRAWONLYINMENU || $game_temp.in_menu)
- )
- end
- def create
- @sprites["heart"]=IconSprite.new(4,@yposition+5,@viewport1)
- @sprites["heart"].setBitmap("Graphics/Pictures/heart")
- @sprites["heart"].z = @zposition
- end
- def drawText
- baseColor=Color.new(72,72,72)
- shadowColor=Color.new(160,160,160)
- if @sprites.include?("overlay")
- @sprites["overlay"].bitmap.clear
- else
- width = Graphics.width
- @sprites["overlay"] = BitmapSprite.new(width,64,@viewport1)
- @sprites["overlay"].y = @yposition-10
- @sprites["overlay"].z = @zposition
- end
- textPositions=[
- [$Trainer.pv.to_s,66,20,2,baseColor,shadowColor],
- ]
- pbSetSystemFont(@sprites["overlay"].bitmap)
- pbDrawTextPositions(@sprites["overlay"].bitmap,textPositions)
- end
- def drawPV
- @sprites["bar"]=IconSprite.new(0,@yposition,@viewport1)
- barBitmap = Bitmap.new($Trainer.pv,8)
- barRect = Rect.new(38,0,barBitmap.width,barBitmap.height)
- barBitmap.fill_rect(barRect,Color.new(0, 255, 0))
- @sprites["bar"].bitmap = barBitmap
- @sprites["bar"].z = @zposition
- end
- def update
- if showHUD?
- if @sprites.empty?
- create
- else
- if Graphics.frame_count%5==0
- drawText
- drawPV
- end
- end
- pbUpdateSpriteHash(@sprites)
- else
- dispose if !@sprites.empty?
- end
- end
- def dispose
- pbDisposeSpriteHash(@sprites)
- end
- end
- alias :initializeOldLife :initialize
- alias :disposeOldLife :dispose
- alias :updateOldLife :update
- def initialize(map=nil)
- initializeOldLife(map)
- end
- def dispose
- @life_hud.dispose if @life_hud
- disposeOldLife
- end
- def update
- updateOldLife
- @life_hud = Life_HUD.new(@viewport1) if !@life_hud
- @life_hud.update
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement