"用超级烂的方法" ——神思
- class ARPG_Rangs
- attr_accessor :rangs
- def initialize(obj, type)
- @rangs = []
- get_rang(obj,type)
- end
- def get_rang(obj,type)
- x = obj.x
- y = obj.y
- d = obj.direction
- # 技能的范围种类就是这里````0为前后一格..1为上下左右```汗``-___-`||
- case type
- # 前后一格
- when 0
- if d == 2
- @rangs = [[x,y+1],[x,y-1]]
- end
- if d == 4
- @rangs = [[x-1,y],[x+1,y]]
- end
- if d == 6
- @rangs = [[x+1,y],[x-1,y]]
- end
- if d == 8
- @rangs = [[x,y-1],[x,y+1]]
- end
- # 上下左右
- when 1
- @rangs = [[x,y+1],[x,y-1],[x+1,y],[x-1,y]]
- # 直线8格(魔神斩用)
- when 5
- if d == 2
- @rangs = [[x,y+1],[x,y+2],[x,y+3],[x,y+4],[x,y+5],[x,y+6],[x,y+7],[x,y+8]]
- end
- if d == 4
- @rangs = [[x-1,y],[x-2,y],[x-3,y],[x-4,y],[x-5,y],[x-6,y],[x-7,y],[x-8,y]]
- end
- if d == 6
- @rangs = [[x+1,y],[x+2,y],[x+3,y],[x+4,y],[x+5,y],[x+6,y],[x+7,y],[x+8,y]]
- end
- if d == 8
- @rangs = [[x,y-1],[x,y-2],[x,y-3],[x,y-4],[x,y-5],[x,y-6],[x,y-7],[x,y-8]]
- end
- # 直线10格(激光用)
- when 6
- if d == 2
- @rangs = [[x,y+1],[x,y+2],[x,y+3],[x,y+4],[x,y+5],[x,y+6],[x,y+7],[x,y+8],[x,y+9],[x,y+10],[x,y+11]]
- end
- if d == 4
- @rangs = [[x-1,y],[x-2,y],[x-3,y],[x-4,y],[x-5,y],[x-6,y],[x-7,y],[x-8,y],[x-9,y],[x-10,y],[x-11,y]]
- end
- if d == 6
- @rangs = [[x+1,y],[x+2,y],[x+3,y],[x+4,y],[x+5,y],[x+6,y],[x+7,y],[x+8,y],[x+9,y],[x+10,y],[x+11,y]]
- end
- if d == 8
- @rangs = [[x,y-1],[x,y-2],[x,y-3],[x,y-4],[x,y-5],[x,y-6],[x,y-7],[x,y-8],[x,y-9],[x,y-10],[x,y-11]]
- end
- # 直线2格(枪用)
- when 2
- if d == 2
- @rangs = [[x,y+1],[x,y+2]]
- end
- if d == 4
- @rangs = [[x-1,y],[x-2,y]]
- end
- if d == 6
- @rangs = [[x+1,y],[x+2,y]]
- end
- if d == 8
- @rangs = [[x,y-1],[x,y-2]]
- end
- # 以角色为中心的3X3格
- when 3
- t = []
- for ex in x-1..x+1
- for ey in y-1..y+1
- t.push([ex,ey])
- end
- end
- @rangs = t
- # 面向的3个敌人
- when 4
- case d
- when 2
- @rangs = [[x-1,y+1],[x,y+1],[x+1,y+1]]
- when 4
- @rangs = [[x-1,y-1],[x-1,y],[x-1,y+1]]
- when 6
- @rangs = [[x+1,y+1],[x+1,y+1],[x+1,y+1]]
- when 8
- @rangs = [[x-1,y-1],[x,y-1],[x+1,y-1]]
- end
- when 7
- sc = []
- for px in x-20..x+20
- for py in y-15..y+15
- sc.push([px,py])
- end
- end
- @rangs = sc
- end
- end
- end
复制代码 |