Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local function silv_slideHandle(p)
- if (p and p.mo and p.mo.valid)
- if p.cmd.buttons & BT_JUMP
- if not p.mo.silv_slidejump
- p.mo.silv_slidejump = 0
- end
- p.mo.silv_slidejump = $+1
- else
- p.mo.silv_slidejump = 0
- end
- if p.mo.silv_slidejumped
- and not P_IsObjectOnGround(p.mo)
- if (P_MobjFlip(p.mo) == 1 and (p.mo.momz/FRACUNIT) <= -7)
- or (P_MobjFlip(p.mo) == -1 and (p.mo.momz/FRACUNIT) <= 7)
- p.mo.state = S_PLAY_FALL1
- p.mo.silv_slidejumped = nil
- end
- else
- p.mo.silv_slidejumped = nil
- end
- if p.mo.silv_sliding
- p.mo.state = S_PLAY_PAIN
- p.mo.friction = 62250
- if p.cmd.forwardmove < 0
- p.mo.friction = p.mo.friction/2
- end
- if p.cmd.sidemove > 0
- p.mo.silv_slideangle = $ - ANG1*2
- elseif p.cmd.sidemove < 0
- p.mo.silv_slideangle = $ + ANG1*2
- end
- p.powers[pw_nocontrol] = 1
- p.mo.angle = p.mo.silv_slideangle -- lock angle
- if p.mo.silv_slidingtime == nil
- p.mo.silv_slidingtime = 0
- p.mo.momx = p.mo.silv_slidemomx
- p.mo.momy = p.mo.silv_slidemomy
- else
- p.mo.silv_slidingtime = $ + 1
- end
- if p.powers[pw_super]
- p.mo.frame = 47
- else
- p.mo.frame = 46
- end
- if not P_IsObjectOnGround(p.mo)
- p.mo.silv_sliding = nil
- p.mo.state = S_PLAY_FALL1
- end
- if p.mo.silv_slidejump == 1 -- slide jump!
- p.jumpfactor = 3*FRACUNIT/2
- P_DoJump(p)
- p.mo.state = S_PLAY_ATK1
- p.mo.silv_sliding = nil
- p.mo.silv_slidejumped = true
- p.jumpfactor = skins[p.mo.skin].jumpfactor
- end
- else
- p.mo.silv_slidingtime = nil
- p.mo.silv_slidemomx = p.mo.momx
- p.mo.silv_slidemomy = p.mo.momy
- p.mo.silv_slideangle = p.mo.angle
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement