Frost Ranged
Frost Ranged combines frost magic with archery for icy projectile attacks.School Properties
- Color:
0xccffff (icy cyan)
- Archetype:
ARCHERY
- Damage Type:
DamageTypes.ARROW
- ID:
spell_power:frost_ranged
Registration
public static final SpellSchool FROST_RANGED = new SpellSchool(
SpellSchool.Archetype.ARCHERY,
Identifier.of(SpellPowerMod.ID, "frost_ranged"),
0xccffff,
DamageTypes.ARROW,
rangedDamageAttribute()
);
Power Calculation
Frost Ranged calculates its power by combining ranged damage and frost spell power:FROST_RANGED.addSource(SpellSchool.Trait.POWER, SpellSchool.Apply.ADD, query -> {
var second_power = query.entity().getAttributeValue(SpellSchools.FROST.attributeEntry);
return query.entity().getAttributeValue(rangedDamageAttribute()) + second_power;
});
Formula: Frost Ranged Power = Ranged Damage + Frost Spell PowerHaste Support
If the Ranged Weapon API is loaded, Frost Ranged benefits from ranged haste:FROST_RANGED.addSource(SpellSchool.Trait.HASTE, SpellSchool.Apply.ADD, query -> {
var haste = query.entity().getAttributeValue(EntityAttributes_RangedWeapon.HASTE.entry);
var rate = EntityAttributes_RangedWeapon.HASTE.asMultiplier(haste);
return rate - 1;
});
Critical Strike Integration
When Critical Strike mod is loaded, Frost Ranged gains critical chance and damage:FROST_RANGED.addSource(SpellSchool.Trait.CRIT_CHANCE, SpellSchool.Apply.ADD, query -> {
var value = query.entity().getAttributeValue(
CriticalStrikeAttributes.CHANCE.attributeEntry
);
return (double) CriticalStrikeAttributes.CHANCE.asChance(value);
});
FROST_RANGED.addSource(SpellSchool.Trait.CRIT_DAMAGE, SpellSchool.Apply.ADD, query -> {
var value = query.entity().getAttributeValue(
CriticalStrikeAttributes.DAMAGE.attributeEntry
);
return CriticalStrikeAttributes.DAMAGE.asMultiplier(value) - 1;
});
Frost Ranged synergizes well with the Frosted and Frozen Solid status effects for crowd control.
Fire Ranged
Fire Ranged merges fire magic with archery for blazing projectile attacks.School Properties
- Color:
0xff3300 (bright orange-red)
- Archetype:
ARCHERY
- Damage Type:
DamageTypes.ARROW
- ID:
spell_power:fire_ranged
Registration
public static final SpellSchool FIRE_RANGED = new SpellSchool(
SpellSchool.Archetype.ARCHERY,
Identifier.of(SpellPowerMod.ID, "fire_ranged"),
0xff3300,
DamageTypes.ARROW,
rangedDamageAttribute()
);
Power Calculation
Fire Ranged calculates its power by combining ranged damage and fire spell power:FIRE_RANGED.addSource(SpellSchool.Trait.POWER, SpellSchool.Apply.ADD, query -> {
var second_power = query.entity().getAttributeValue(SpellSchools.FIRE.attributeEntry);
return query.entity().getAttributeValue(rangedDamageAttribute()) + second_power;
});
Formula: Fire Ranged Power = Ranged Damage + Fire Spell PowerHaste Support
If the Ranged Weapon API is loaded, Fire Ranged benefits from ranged haste:FIRE_RANGED.addSource(SpellSchool.Trait.HASTE, SpellSchool.Apply.ADD, query -> {
var haste = query.entity().getAttributeValue(EntityAttributes_RangedWeapon.HASTE.entry);
var rate = EntityAttributes_RangedWeapon.HASTE.asMultiplier(haste);
return rate - 1;
});
Critical Strike Integration
When Critical Strike mod is loaded, Fire Ranged gains critical chance and damage:FIRE_RANGED.addSource(SpellSchool.Trait.CRIT_CHANCE, SpellSchool.Apply.ADD, query -> {
var value = query.entity().getAttributeValue(
CriticalStrikeAttributes.CHANCE.attributeEntry
);
return (double) CriticalStrikeAttributes.CHANCE.asChance(value);
});
FIRE_RANGED.addSource(SpellSchool.Trait.CRIT_DAMAGE, SpellSchool.Apply.ADD, query -> {
var value = query.entity().getAttributeValue(
CriticalStrikeAttributes.DAMAGE.attributeEntry
);
return CriticalStrikeAttributes.DAMAGE.asMultiplier(value) - 1;
});
Fire Ranged works excellently with the Burning Chance attribute and Ignited status effect for damage over time strategies.