/// <summary> /// Completes skill usage if it was a regular dye. /// </summary> /// <param name="creature"></param> /// <param name="packet"></param> /// <param name="skill"></param> /// <param name="part"></param> private void CompleteRegular(Creature creature, Packet packet, Skill skill, int part) { var x = packet.GetShort(); var y = packet.GetShort(); // Choose random picker var rnd = RandomProvider.Get(); DyePicker picker; switch (rnd.Next(5)) { default: case 0: picker = creature.Temp.RegularDyePickers.Picker1; break; case 1: picker = creature.Temp.RegularDyePickers.Picker2; break; case 2: picker = creature.Temp.RegularDyePickers.Picker3; break; case 3: picker = creature.Temp.RegularDyePickers.Picker4; break; case 4: picker = creature.Temp.RegularDyePickers.Picker5; break; } // Apply picker offset x = (short)((x + picker.X) % MapSize); y = (short)((y + picker.Y) % MapSize); // Arguments var a1 = creature.Temp.DyeDistortA1; var a2 = creature.Temp.DyeDistortA2; var a3 = creature.Temp.DyeDistortA3; var a4 = creature.Temp.DyeDistortA4; // Color item var item = creature.Temp.SkillItem1; var data = item.Data; try { switch (part) { default: case 0: item.Info.Color1 = GetRegularColor(data.ColorMap1, a1, a2, a3, a4, x, y); break; case 1: item.Info.Color2 = GetRegularColor(data.ColorMap2, a1, a2, a3, a4, x, y); break; case 2: item.Info.Color3 = GetRegularColor(data.ColorMap3, a1, a2, a3, a4, x, y); break; } this.DyeSuccess(creature); Send.AcquireFixedDyedItemInfo(creature, item.EntityId); } catch (Exception ex) { Log.Exception(ex); Send.ServerMessage(creature, Localization.Get("Error, please report.")); } Send.SkillCompleteDye(creature, skill.Info.Id, part); }
/// <summary> /// Completes skill usage if it was a fixed dye. /// </summary> /// <param name="creature"></param> /// <param name="packet"></param> /// <param name="skill"></param> /// <param name="part"></param> private void CompleteFixed(Creature creature, Packet packet, Skill skill, int part) { // Older logs seem to have an additional byte (like Use?) //var unk = packet.GetByte(); switch (part) { default: case 0: creature.Temp.SkillItem1.Info.Color1 = creature.Temp.SkillItem2.Info.Color1; break; case 1: creature.Temp.SkillItem1.Info.Color2 = creature.Temp.SkillItem2.Info.Color1; break; case 2: creature.Temp.SkillItem1.Info.Color3 = creature.Temp.SkillItem2.Info.Color1; break; } this.DyeSuccess(creature); Send.AcquireFixedDyedItemInfo(creature, creature.Temp.SkillItem1.EntityId); Send.SkillCompleteDye(creature, skill.Info.Id, part); }