; Smithing Skill
; Scenes 120-125

; Furnace
; Scene 120
SCENE 120, Furnace, SCENE, "Public Furnace"
#include proxbeta.txt
@smithset
COMPARE #<SDoneSet>,1
IF= @furnace
COMPARE #<SDoneSet>,2
IF= @hacked
SET SLVL, 1
SET A1,#<SLVL>
ADD A1,1
SET A2,#<A1>
MUL A1,#<A2>
MUL A1,#<A2>
SET SXP,#<A1>
; Checksum settings.
SET A2,#<SLVL>
SET A3,#<SXP>
MUL A2,3
MUL A3,2
SET SCHK,#<A2>
ADD SCHK,#<A3>
MUL SCHK,5
MOD SCHK,23
SET SDoneSet, 1
GOTO @furnace
END
@furnace
ACTOR 1, "Furnace", furnace, 0, 50, 60
H: I'm currently level #<SLVL> in smithing.  
COMPARE #<A11>,1
IF= @CHKRefresh
END

@eventActorGive1
SET A11, 1
SET A4, #<SXP>
SET A1, #<SLVL>
ADD A1, 1
COMPARE #<item.id>, 719
IF= @copperbar
COMPARE #<item.id>, 720
IF= @bronzebar
COMPARE #<item.id>, 721
IF= @ironbar
COMPARE #<item.id>, 722
IF= @steelbar
COMPARE #<item.id>, 745
IF= @brassbar
COMPARE #<item.id>, 723
IF= @silverbar
COMPARE #<item.id>, 724
IF= @mithrilbar
COMPARE #<item.id>, 725
IF= @goldbar
COMPARE #<item.id>, 726
IF= @adamantbar
COMPARE #<item.id>, 727
IF= @magestonebar
N: Your item burned to shreds.  Next time, throw an ore.
SET A11, 0
END

@copperbar
COMPARE #<A1>, 1
IF> @copper
GOTO @lowlevel
END

@bronzebar
COMPARE #<A1>, 5
IF> @bronze
GOTO @lowlevel
END

@ironbar
COMPARE #<A1>, 15
IF> @iron
GOTO @lowlevel
END

@steelbar
COMPARE #<A1>, 25
IF> @steel
GOTO @lowlevel
END

@brassbar
COMPARE #<A1>, 35
IF> @brass
GOTO @lowlevel
END

@silverbar
COMPARE #<A1>, 40
IF> @silver
GOTO @lowlevel
END

@mithrilbar
COMPARE #<A1>, 55
IF> @mithril
GOTO @lowlevel
END

@goldbar
COMPARE #<A1>, 60
IF> @gold
GOTO @lowlevel
END

@adamantbar
COMPARE #<A1>, 70
IF> @adamant
GOTO @lowlevel
END

@magestonebar
COMPARE #<A1>, 85
IF> @magestone
GOTO @lowlevel
END

@lowlevel
H: I'm too low of a level to smelt this.
HOST_GIVE I#<item.id>
END

@copper
SOUND furnace.wav
HOST_GIVE I747
SUB SXP,3
H: I got a copper bar.
GOTO @Checksum
END
@bronze
IF -I719, @notenoughore
HOST_TAKE I719
SOUND furnace.wav
HOST_GIVE I748
SUB SXP,7
H: I got a bronze bar.
GOTO @Checksum
END
@iron
SOUND furnace.wav
HOST_GIVE I749
SUB SXP,15
H: I got an iron bar.
GOTO @Checksum
END
@steel
IF -I721, @notenoughore
HOST_TAKE I721
SOUND furnace.wav
HOST_GIVE I750
SUB SXP,30
H: I got a steel bar.
GOTO @Checksum
END
@brass
IF -I719, @notenoughore
HOST_TAKE I719
SOUND furnace.wav
HOST_GIVE I751
SUB SXP,40
H: I got a brass bar.
GOTO @Checksum
END
@silver
SOUND furnace.wav
HOST_GIVE I752
SUB SXP,50
H: I got a silver bar.
GOTO @Checksum
END
@mithril
IF -I722, @notenoughore
HOST_TAKE I722
SOUND furnace.wav
HOST_GIVE I753
SUB SXP,65
H: I got a mithril bar.
GOTO @Checksum
END
@gold
SOUND furnace.wav
HOST_GIVE I754
SUB SXP,75
H: I got a gold bar.
GOTO @Checksum
END
@adamant
IF -I722, @notenoughore
HOST_TAKE I722
SOUND furnace.wav
HOST_GIVE I755
SUB SXP,90
H: I got an adamant bar.
GOTO @Checksum
END
@magestone
IF -I722, @notenoughore
HOST_TAKE I722
SOUND furnace.wav
HOST_GIVE I756
SUB SXP,110
H: I got a magestone bar.
GOTO @Checksum
END

@notenoughore
H: I need more ore to smelt this.  
HOST_GIVE I#<item.id>
END

@Checksum
; Checksum protecting smithing.  Don't forget that this changed when smithing.  
SET A5,#<A4>
SUB A5,#<SXP>
SET A4,0
; Now A5 expresses the experience gained during the latest smelt.  

SET SCHK2,#<SCHK>
SET A2,#<SLVL>
SET A3,#<SXP>

; Since SXP decreases as you smelt, you must add A5.
ADD A3,#<A5>

MUL A2,3
MUL A3,2
SET SCHK,#<A2>
ADD SCHK,#<A3>
MUL SCHK,5
MOD SCHK,23
SUB SCHK2,#<SCHK>
COMPARE #<SCHK2>,0
IF= @passedchk
SET SDoneSet,2
SET SCHK2=0
GOTO @smithset
END

@passedchk
WAIT 2
COMPARE #<SXP>,1
IF< @LevelUp
GOTO @CHKRefresh
END

; Non-banning cheat protection.
@hacked
N: You seem to have changed your smithing cookies.  
N: They will be reset to level 1 with nothing smithed.
; Reset stats.
SET SDoneSet,0
GOTO @smithset
END

@LevelUp
; Yay, a level!
SET A1,#<SLVL>
SET A3,#<A1>
ADD A1,1
SET A2,#<A1>
MUL A1,#<A2>
MUL A1,#<A2>
MUL A3,#<SLVL>
MUL A3,#<SLVL>
SUB A1,#<A3>
SET SXP,#<A1>
ADD SLVL,1
H: I just raised a level!  I'm level #<SLVL> now!

; Smithing upgrades
COMPARE #<SLVL>,5
IF= @cansmeltbronze
COMPARE #<SLVL>,15
IF= @cansmeltiron
COMPARE #<SLVL>,25
IF= @cansmeltsteel
COMPARE #<SLVL>,35
IF= @cansmeltbrass
COMPARE #<SLVL>,40
IF= @cansmeltsilver
COMPARE #<SLVL>,55
IF= @cansmeltmithril
COMPARE #<SLVL>,60
IF= @cansmeltgold
COMPARE #<SLVL>,70
IF= @cansmeltadamant
COMPARE #<SLVL>,85
IF= @cansmeltmagestone
GOTO @CHKRefresh

@cansmeltbronze
H: I can smelt bronze now!
GOTO @CHKRefresh
@cansmeltiron
H: I can smelt iron now!
GOTO @CHKRefresh
@cansmeltsteel
H: I can smelt steel now!
GOTO @CHKRefresh
@cansmeltbrass
H: I can smelt brass now!
GOTO @CHKRefresh
@cansmeltsilver
H: I can smelt silver now!
GOTO @CHKRefresh
@cansmeltmithril
H: I can smelt mithril now!
GOTO @CHKRefresh
@cansmeltgold
H: I can smelt gold now!
GOTO @CHKRefresh
@cansmeltadamant
H: I can smelt adamant now!
GOTO @CHKRefresh
@cansmeltmagestone
H: I can smelt magestone now!
GOTO @CHKRefresh
H: Oops, a bug!
END

@CHKRefresh
; Checksum refresh.
SET A2,#<SLVL>
SET A3,#<SXP>
MUL A2,3
MUL A3,2
SET SCHK,#<A2>
ADD SCHK,#<A3>
MUL SCHK,5
MOD SCHK,23

SET A11, 0
END

; Smithing Scripts By Phoenix Star for Gretok
; Copyright 2004 WDU.  All rights reserved.