<commit_before>package main

const AssassinStackName = "Tenecity"

func AssassinStack(op Operator, o Object) {
	c := UnitCorrection{
		CriticalStrikeChance: 0.05,
		CriticalStrikeFactor: 0.05,
	}
	op.Correction(o, c, 10, 10*Second, AssassinStackName)
}

func NewClassAssassin() *Class {
	var q, w, e, r Ability
	class := &Class{
		Name:                 "Assassin",
		Health:               600,
		HealthRegeneration:   11,
		Mana:                 200,
		ManaRegeneration:     14,
		Armor:                DefaultArmor,
		MagicResistance:      DefaultMagicResistance,
		CriticalStrikeChance: DefaultCriticalStrikeChance + 0.05,
		CriticalStrikeFactor: DefaultCriticalStrikeFactor + 0.5,
		CooldownReduction:    DefaultCooldownReduction,
		DamageThreatFactor:   DefaultDamageThreatFactor,
		HealingThreatFactor:  DefaultHealingThreatFactor,
		Abilities:            []*Ability{&q, &w, &e, &r},
	}
	q = Ability{
		Name:               "Triple Cleave",
		Description:        "Deals physical damage three times",
		TargetType:         TargetTypeEnemy,
		HealthCost:         0,
		ManaCost:           0,
		ActivationDuration: 0,
		CooldownDuration:   2 * Second,
		DisableTypes: []DisableType{
			DisableTypeStun,
		},
		Perform: func(op Operator, s Subject, o *Unit) {
			for i := 0; i < 3; i++ {
				if o.IsDead() {
					return
				}
				_, _, crit, err := op.PhysicalDamage(s, o, 45).Perform()
				if err != nil {
					log.Fatal(err)
				}
				if crit {
					AssassinStack(op, MakeObject(s.Subject()))
				}
			}
		},
	}
	w = Ability{
		Name:               "<NAME>",
		Description:        "Deals physcical damage / Grants a physical damage over time effect for 10 seconds to target",
		TargetType:         TargetTypeEnemy,
		HealthCost:         0,
		ManaCost:           20,
		ActivationDuration: 0,
		CooldownDuration:   8 * Second,
		DisableTypes: []DisableType{
			DisableTypeStun,
		},
		Perform: func(op Operator, s Subject, o *Unit) {
			_, _, crit, err := op.PhysicalDamage(s, o, 80).Perform()
			if err != nil {
				log.Fatal(err)
			}
			if crit {
				AssassinStack(op, MakeObject(s.Subject()))
			}
			if o.IsDead() {
				return
			}
			op.DoT(op.PhysicalDamage(s, o, 10), 10*Second, w.Name)
		},
	}
	e = Ability{
		Name:               "Tenacity",
		Description:        "Gains three Tenacity effects / Loses armor and magic resistance for 8 seconds / Tenecity effect increases critical strike chance and critical strike damage",
		TargetType:         TargetTypeNone,
		HealthCost:         0,
		ManaCost:           40,
		ActivationDuration: 0,
		CooldownDuration:   20 * Second,
		DisableTypes: []DisableType{
			DisableTypeStun,
		},
		Perform: func(op Operator, s Subject, o *Unit) {
			c := UnitCorrection{
				Armor:           -25,
				MagicResistance: -25,
			}
			op.Correction(s.Subject(), c, 1, 8*Second, e.Name)
			for i := 0; i < 3; i++ {
				AssassinStack(op, MakeObject(s.Subject()))
			}
		},
	}
	w = Ability{
		Name:               "<NAME>",
		Description:        "Deals pure damage / Silences target for 1 second / Consumes all Tenecity effects",
		TargetType:         TargetTypeEnemy,
		HealthCost:         0,
		ManaCost:           120,
		ActivationDuration: 0,
		CooldownDuration:   60 * Second,
		DisableTypes: []DisableType{
			DisableTypeStun,<commit_msg>Fix a typo<commit_after>package main

const AssassinStackName = "Tenecity"

func AssassinStack(op Operator, o Object) {
	c := UnitCorrection{
		CriticalStrikeChance: 0.05,
		CriticalStrikeFactor: 0.05,
	}
	op.Correction(o, c, 10, 10*Second, AssassinStackName)
}

func NewClassAssassin() *Class {
	var q, w, e, r Ability
	class := &Class{
		Name:                 "Assassin",
		Health:               600,
		HealthRegeneration:   11,
		Mana:                 200,
		ManaRegeneration:     14,
		Armor:                DefaultArmor,
		MagicResistance:      DefaultMagicResistance,
		CriticalStrikeChance: DefaultCriticalStrikeChance + 0.05,
		CriticalStrikeFactor: DefaultCriticalStrikeFactor + 0.5,
		CooldownReduction:    DefaultCooldownReduction,
		DamageThreatFactor:   DefaultDamageThreatFactor,
		HealingThreatFactor:  DefaultHealingThreatFactor,
		Abilities:            []*Ability{&q, &w, &e, &r},
	}
	q = Ability{
		Name:               "Triple Cleave",
		Description:        "Deals physical damage three times",
		TargetType:         TargetTypeEnemy,
		HealthCost:         0,
		ManaCost:           0,
		ActivationDuration: 0,
		CooldownDuration:   2 * Second,
		DisableTypes: []DisableType{
			DisableTypeStun,
		},
		Perform: func(op Operator, s Subject, o *Unit) {
			for i := 0; i < 3; i++ {
				if o.IsDead() {
					return
				}
				_, _, crit, err := op.PhysicalDamage(s, o, 45).Perform()
				if err != nil {
					log.Fatal(err)
				}
				if crit {
					AssassinStack(op, MakeObject(s.Subject()))
				}
			}
		},
	}
	w = Ability{
		Name:               "<NAME>",
		Description:        "Deals physcical damage / Grants a physical damage over time effect for 10 seconds to target",
		TargetType:         TargetTypeEnemy,
		HealthCost:         0,
		ManaCost:           20,
		ActivationDuration: 0,
		CooldownDuration:   8 * Second,
		DisableTypes: []DisableType{
			DisableTypeStun,
		},
		Perform: func(op Operator, s Subject, o *Unit) {
			_, _, crit, err := op.PhysicalDamage(s, o, 80).Perform()
			if err != nil {
				log.Fatal(err)
			}
			if crit {
				AssassinStack(op, MakeObject(s.Subject()))
			}
			if o.IsDead() {
				return
			}
			op.DoT(op.PhysicalDamage(s, o, 10), 10*Second, w.Name)
		},
	}
	e = Ability{
		Name:               "Tenacity",
		Description:        "Gains three Tenacity effects / Loses armor and magic resistance for 8 seconds / Tenecity effect increases critical strike chance and critical strike damage",
		TargetType:         TargetTypeNone,
		HealthCost:         0,
		ManaCost:           40,
		ActivationDuration: 0,
		CooldownDuration:   20 * Second,
		DisableTypes: []DisableType{
			DisableTypeStun,
		},
		Perform: func(op Operator, s Subject, o *Unit) {
			c := UnitCorrection{
				Armor:           -25,
				MagicResistance: -25,
			}
			op.Correction(s.Subject(), c, 1, 8*Second, e.Name)
			for i := 0; i < 3; i++ {
				AssassinStack(op, MakeObject(s.Subject()))
			}
		},
	}
	r = Ability{
		Name:               "<NAME>",
		Description:        "Deals pure damage / Silences target for 1 second / Consumes all Tenecity effects",
		TargetType:         TargetTypeEnemy,
		HealthCost:         0,
		ManaCost:           120,
		ActivationDuration: 0,
		CooldownDuration:   60 * Second,
		DisableTypes: []DisableType{
			DisableTypeStun,
{'fraction_non_alphanumeric': 0.11122994652406418, 'fraction_numerical': 0.021084797555385792, 'mean_word_length': 2.563418617310833, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5128254', 'n_tokens_mistral': 2640, 'n_tokens_neox': 2199, 'n_words': 555}