ACTOR Lighter : G2_Weapon {
	scale 0.2
	Inventory.PickupMessage "Picked up a Lighter"
	Inventory.PickupSound "weapons/lighter_open"
	Weapon.AmmoType "LighterFuel"
	Weapon.AmmoGive 10000
	+WEAPON.NOAUTOFIRE
	States
	{
		Spawn:
			LIT1 H 1
			Loop
		Ready:
			LIT1 A 0
			LIT1 ABC 2
			//LIT1 C 0 A_PlaySoundEx("weapons/lighter_open","Weapon",0)
			//LIT1 C 0 ACS_NamedExecuteWithResult("sound_alert_lighter")
			LIT1 C 0 A_TakeInventory("G2_UsesLightSource",1)
			LIT1 C 1 A_WeaponReady
			Goto Ready+5
		Select:
			LIT1 A 1 A_Raise
			LIT1 A 0 A_Raise
			Loop
		Deselect:
			LIT1 C 0
			LIT1 C 0 A_TakeInventory("G2_UsesLightSource",1)
			//LIT1 C 0 A_PlaySoundEx("weapons/lighter_close","Weapon",0)
			//LIT1 C 0 ACS_NamedExecuteWithResult("sound_alert_lighter")
			LIT1 A 0 A_Light0
			LIT1 CBA 3
			LIT1 A 0
			LIT1 A 1 A_Lower
			LIT1 A 0 A_Lower
			Goto Deselect+6
		Fire:
			LIT1 D 0 A_JumpIfInventory("LighterFuel",1,"DoFire")
			Goto AltFire
		DoFire:
			LIT1 D 0 A_TakeInventory("G2_UsesLightSource",1)
			LIT1 E 2
			LIT1 F 0 A_FireCustomMissile("G2_Lighter_Flare",0,0,0,0,0,0)
			LIT1 F 2 A_PlaySoundEx("weapons/lighter_click","Weapon",0)
			LIT1 F 0 ACS_NamedExecuteWithResult("sound_alert_lighter")
			LIT1 E 2 
			LIT1 D 2
			LIT1 E 0 A_Jump(50, "Hold")
			LIT1 DEEEEEED 2 A_WeaponReady
			Goto Ready+5
		Hold:
			LIT1 I 0
			LIT1 I 0 A_GiveInventory("G2_UsesLightSource",1)
			LIT1 I 0 ACS_NamedExecuteWithResult("lights_lighter")
			LIT1 I 0 A_Light1
			LIT1 IIJJ 1 A_FireCustomMissile("G2_IgnitionLight")
			LIT1 I 0 A_TakeInventory("LighterFuel",1)
			LIT1 IIJJ 1 A_FireCustomMissile("G2_IgnitionLight")
			LIT1 I 0 A_TakeInventory("LighterFuel",1)
			LIT1 IIJJ 1 A_FireCustomMissile("G2_IgnitionLight")
		Holding:
			LIT1 I 0 A_TakeInventory("LighterFuel",1)
			LIT1 I 0 A_Light1 //40, 2
			LIT1 IIJJ 1 A_WeaponReady
			LIT1 J 0 A_FireCustomMissile("G2_IgnitionLight")
			LIT1 J 0 A_JumpIfInventory("G2_UsesLightSource", 1, "ShouldHold")
			goto Ready
			ShouldHold:
			LIT1 D 0 A_JumpIfInventory("LighterFuel",1,"Holding")
			goto AltFire
			FlameStop:
			LIT1 D 0 A_Light0
			LIT1 D 2 A_TakeInventory("G2_UsesLightSource",1)
			goto Ready+5
		AltFire:
			LIT1 A 0
			LIT1 A 0 A_JumpIfInventory("G2_UsesLightSource", 1, "FlameStop")
			LIT1 A 0 A_TakeInventory("G2_UsesLightSource",1)
			LIT1 CBA 2
			LIT1 A 0 A_PlaySound("weapons/lighter_close", CHAN_WEAPON)
			LIT1 A 0 A_Light0
			goto Ready
	}
}

ACTOR G2_Lighter_Light {
	+NOCLIP
	-SOLID
	+DONTSPLASH
	+CLIENTSIDEONLY
	+NOTIMEFREEZE
	+THRUACTORS
	States {
		Spawn:
			TNT1 A 0
			TNT1 A -1
			Stop
	}
}

ACTOR G2_Lighter_Light2 : G2_Lighter_Light { }

actor G2_Lighter_Flare : G2_Flashlight_Flare {
	alpha 0.9
	scale 0.2
	States {
		Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(momz > 16.0,"Death")
		TNT1 A 0 A_JumpIf(momz < -16.0,"Death")
		
		TNT1 A 1 A_Stop
		LFLR BBBBBBBBBBB 1 bright A_FadeOut(0.23)
		stop
		Death:
		TNT1 A 0
		TNT1 A 0
		stop
	}
}

actor G2_Lighter_Flare2 : G2_Lighter_Flare {
	States {
		Spawn:
			LFLR B -1 bright
			stop
	}
}

actor G2_IgnitionLight {
	height 2
	radius 2
	PROJECTILE
	damage 1
	speed 16
	damagetype "Fire"

	+SERVERSIDEONLY //Probably?

	States {
		Spawn:
		TNT1 A 0
		TNT1 A 2
		stop
		XDeath:
		TNT1 A 0 ACS_NamedExecuteWithResult("g2_ignite")
		stop
	}
}

ACTOR LighterFuel : Ammo {
	Inventory.PickupMessage "Picked up a few ticks fuel worth for lighter... wut"
	Inventory.Amount 0
	Inventory.MaxAmount 10000 
	Ammo.BackpackAmount 10000
	Ammo.BackpackMaxAmount 10000
	+INVENTORY.IGNORESKILL
	States {
		Spawn:
			CLIP A 1
			Stop
	}
}