#generate item modifiers
for i_mod in range(1, 4):
items += ["mod_"+str(i_mod)+"_items_begin", "Mod "+str(i_mod)+" Items Begin", [("invalid_item",0)], itp_type_horse, 0, 0, 0, imodbits_none ],
for i_item in range(itm_regular_items_begin +1, itm_mod_1_items_begin):
values = [ #get base values
get_weight(items[i_item][6]),
get_abundance(items[i_item][6]),
get_head_armor(items[i_item][6]),
get_body_armor(items[i_item][6]),
get_leg_armor(items[i_item][6]),
get_difficulty(items[i_item][6]),
get_speed_rating(items[i_item][6]),
get_missile_speed(items[i_item][6]),
get_weapon_length(items[i_item][6]),
get_max_ammo(items[i_item][6]),
get_thrust_damage(items[i_item][6])&0xff, #damage
get_thrust_damage(items[i_item][6])/0x100, #type
get_swing_damage(items[i_item][6]), #damage
get_swing_damage(items[i_item][6]), #type
]
modifiers = [i-i for i in range(len(values))] #empty modifier arrays
#print modifiers
if values[1] > i_mod * 10:
modifiers[1] = i_mod * -10
item_type = items[i_item][3]&0x000000ff
if item_type >= itp_type_one_handed_wpn and item_type <= itp_type_polearm:
modifiers[7] = i_mod #speed rating
if values[11] > 0: #check for thrust attack
modifiers[11] = i_mod
if values[13] > 0: #check for swing attack
modifiers[13] = i_mod
elif item_type == itp_type_shield:
modifiers[3] = i_mod #armor
modifiers[6] = i_mod*10 #health points
modifiers[7] = i_mod #speed rating
modifiers[11] = i_mod #bash damage
elif item_type >= itp_type_bow and item_type <= itp_type_thrown or item_type == itp_type_pistol or item_type == itp_type_musket:
modifiers[4] = i_mod #accuracy
modifiers[8] = i_mod #missle speed
modifiers[11] = i_mod #damage
elif item_type == itp_type_arrows or item_type == itp_type_bolts or item_type == itp_type_bullets:
modifiers[11] = i_mod #damage
elif item_type >= itp_type_head_armor and item_type <= itp_type_hand_armor:
for i in range(2,5):
if values[i] > 0: #check for armor
modifiers[i] = i_mod
elif item_type == itp_type_horse:
modifiers[3] = i_mod #armor
modifiers[6] = i_mod*10 #health points
modifiers[7] = i_mod #maneuver
modifiers[8] = i_mod #speed
modifiers[11] = i_mod #charge damage
for i in range(len(values)):
if modifiers[i] != 0:
values[i] = values[i] + modifiers[i]
trigger_list = [] #check for triggers
if (len(items[i_item]) > 8):
trigger_list = items[i_item][8]
#faction_list = [] #check for factions #NOT USED
#if (len(items[i_item]) > 9):
#faction_list = items[i_item][9]
items += [
str(i_mod)+"_"+ items[i_item][0],#Item id
"+" +str(i_mod)+ " "+ items[i_item][1],#Item name
items[i_item][2],#List of meshes
items[i_item][3],#Item flags
items[i_item][4],#Item capabilities
items[i_item][5],#Item value
weight(values[0])|
abundance(values[1])|
head_armor(values[2])|
body_armor(values[3])|
leg_armor(values[4])|
difficulty(values[5])|
hit_points(values[6])|
spd_rtng(values[7])|
shoot_speed(values[8])|
weapon_length(values[9])|
max_ammo(values[10])|
thrust_damage(int(values[11]),int(values[12]))|
items[i_item][7],#Modifier bits
trigger_list,
#faction_list #NOT USED
],