comparison Main.lua @ 384:ae63dafab1e6

Replaced individual bonusID system with one that stores and tracks combinations.
author MMOSimca <MMOSimca@gmail.com>
date Fri, 12 Dec 2014 12:42:02 -0500
parents d3e8a11a21ea
children f49252dc3de0
comparison
equal deleted inserted replaced
383:d3e8a11a21ea 384:ae63dafab1e6
1052 1052
1053 if instance_difficulty_id and instance_difficulty_id ~= 0 then 1053 if instance_difficulty_id and instance_difficulty_id ~= 0 then
1054 item.instance_difficulty_id = instance_difficulty_id 1054 item.instance_difficulty_id = instance_difficulty_id
1055 end 1055 end
1056 1056
1057 -- Future code: waiting for dev time to implement server-side parsing 1057 if not item.seen_bonuses then
1058 --[[if not item.bonus_ids then 1058 item.seen_bonuses = {}
1059 item.bonus_ids = {} 1059 end
1060 end 1060 item.seen_bonuses[0] = true
1061 item.bonus_ids[0] = true]]--
1062 end 1061 end
1063 elseif num_bonus_ids > 0 then 1062 elseif num_bonus_ids > 0 then
1064 item = DBEntry("items", item_id) 1063 item = DBEntry("items", item_id)
1065 1064
1066 item.unique_id = bit.band(unique_id, 0xFFFF) 1065 item.unique_id = bit.band(unique_id, 0xFFFF)
1067 item.instance_difficulty_id = instance_difficulty_id 1066 item.instance_difficulty_id = instance_difficulty_id
1068 1067
1069 if not item.bonus_ids then 1068 if not item.seen_bonuses then
1070 item.bonus_ids = {} 1069 item.seen_bonuses = {}
1071 end 1070 end
1072 1071
1073 for bonus_index = 1, num_bonus_ids do 1072 -- We want the bonus ID combo output to be in the form ["bonusID1:bonusID2:bonusID3"] = true
1074 item.bonus_ids[tonumber(item_results[13 + bonus_index])] = true 1073 -- And sorted numerically with the smallest bonusID first
1075 end 1074 local sorted_bonus_string = ""
1076 1075 local min_bonus_id_array = {}
1077 Debug("RecordItemData: Recorded bonusIDs for %d.", item_id) 1076 for iterations = 1, num_bonus_ids do
1077 -- Find minimum of this iteration
1078 local min_bonus_id = 100000
1079 for bonus_index = 1, num_bonus_ids do
1080 local temp_bonus_id = tonumber(item_results[13 + bonus_index])
1081 if (not min_bonus_id_array[temp_bonus_id]) and (min_bonus_id < temp_bonus_id) then
1082 min_bonus_id = temp_bonus_id
1083 end
1084 end
1085
1086 -- Keep track of already processed IDs
1087 min_bonus_id_array[min_bonus_id] = true
1088
1089 -- Build string
1090 if iterations == 1 then
1091 sorted_bonus_string = sorted_bonus_string .. tostring(min_bonus_id)
1092 else
1093 sorted_bonus_string = sorted_bonus_string .. ":" .. tostring(min_bonus_id)
1094 end
1095 end
1096
1097 Debug("RecordItemData: Recorded bonus IDs %s for item %d.", sorted_bonus_string, item_id)
1078 else 1098 else
1079 Debug("RecordItemData: num_bonus_ids is supposed to be 0 or positive, instead it was %d.", num_bonus_ids) 1099 Debug("RecordItemData: num_bonus_ids is supposed to be 0 or positive, instead it was %d.", num_bonus_ids)
1080 end 1100 end
1081 if upgrade_id and upgrade_id ~= 0 then 1101 if upgrade_id and upgrade_id ~= 0 then
1082 DatamineTT:SetHyperlink(item_link) 1102 DatamineTT:SetHyperlink(item_link)