// Deal 8 damage. Sweeper. Add a Crusher into your hand. Cost 1. public ChainReaction() { SetCommonCardAttributes("Chain Reaction", Rarity.RARE, TargetType.ENEMY, CardType.SkillCard, 1); AddSticker(new BasicAttackTargetSticker()); BaseDamage = 8; DamageModifiers.Add(new SweeperDamageModifier()); ProtoSprite = ProtoGameSprite.CogIcon("pendulum-swing"); }
public AutocannonSentry() { SetCommonCardAttributes("Autocannon Sentry", Rarity.NOT_IN_POOL, TargetType.ENEMY, CardType.AttackCard, 1); BaseDamage = 4; DamageModifiers.Add(new PrecisionDamageModifier()); AddSticker(new LightCardSticker()); ProtoSprite = ProtoGameSprite.CogIcon("autogun"); }
// Deal 20 damage. Buster. Cost 2. public HandCannon() { SetCommonCardAttributes("Hand Cannon", Rarity.UNCOMMON, TargetType.ENEMY, CardType.AttackCard, 2, protoGameSprite: ProtoGameSprite.ArchonIcon("cannon-shot")); Stickers.Add(new BasicAttackTargetSticker()); BaseDamage = 20; DamageModifiers.Add(new BusterDamageModifier()); }
// Gain 1 strength. Deal 10 damage. Cost 2. public TitanHunter() { SetCommonCardAttributes("Titan Hunter", Rarity.COMMON, TargetType.ENEMY, CardType.AttackCard, 2); BaseDamage = 10; Stickers.Add(new ExertCardSticker()); DamageModifiers.Add(new SlayerDamageModifier()); ProtoSprite = ProtoGameSprite.HammerIcon("atlas"); }
public OffscreenArtillery() { DamageModifiers.Add(new BusterDamageModifier()); SetCommonCardAttributes("Offscreen Artillery", Rarity.RARE, TargetType.NO_TARGET_OR_SELF, CardType.AttackCard, 3, protoGameSprite: ProtoGameSprite.ArchonIcon("artillery-shell")); this.BaseDamage = 11; }
// Deal 14 damage. Cost 2. Precision. // Patient: Do it again. public ScopedOut() { SetCommonCardAttributes("Scoped Out", Rarity.UNCOMMON, TargetType.ENEMY, CardType.AttackCard, 1); DamageModifiers.Add(new PrecisionDamageModifier()); this.ProtoSprite = ProtoGameSprite.ArchonIcon("targeting"); }
// deal 5 damage and Owner gains 2 block. Cost 1. // Lethal: ALL copies of this card owned by {Owner} gains 1 defense and 1 attack PERMANENTLY. // Brute: Draw 3 cards. public OverThreeHundredConfirmedKills() { SetCommonCardAttributes("Over Three Hundred Confirmed Kills", Rarity.COMMON, TargetType.ENEMY, CardType.AttackCard, 1, typeof(HammerSoldierClass)); BaseDamage = 5; BaseDefenseValue = 2; DamageModifiers.Add(new OverThreeHundredConfirmedKillsLethalDamageModifier()); ProtoSprite = ProtoGameSprite.HammerIcon("pianist"); }
// Deal 30 damage. Precision. Bounty. Cost 3. // Hoard 4. public EarnMySalary() { SetCommonCardAttributes("Earn My Salary", Rarity.RARE, TargetType.ENEMY, CardType.AttackCard, 3); DamageModifiers.Add(new PrecisionDamageModifier()); DamageModifiers.Add(BountyDamageModifier.GetBountyDamageModifier()); Stickers.Add(new GildedCardSticker(4)); BaseDamage = 30; ProtoSprite = ProtoGameSprite.CogIcon("farmer"); }
// Deal 10 damage. Lethal: Increase this card's Hoard value by 2 PERMANENTLY. Hoard 2. public Stonks() { SetCommonCardAttributes("Stonks!", Rarity.RARE, TargetType.ENEMY, CardType.AttackCard, 1); DamageModifiers.Add(new StonksDamageModifier()); Stickers.Add(new BasicAttackTargetSticker()); Stickers.Add(new GildedCardSticker(2)); BaseDamage = 10; ProtoSprite = ProtoGameSprite.CogIcon("chart"); }
// Cost 3 Deal 20 damage to target, and apply 10 defense to ALL allies. Buster, Slayer. public WhereIsYourGodNow() { SetCommonCardAttributes("Where Is Your God Now", Rarity.RARE, TargetType.ENEMY, CardType.AttackCard, 3); BaseDamage = 20; BaseDefenseValue = 10; DamageModifiers.Add(new BusterDamageModifier()); DamageModifiers.Add(new SlayerDamageModifier()); ProtoSprite = ProtoGameSprite.CogIcon("anubis"); }
// Deal 8 damage. Cost 3. Buster. Precision. Refund 2. public RealityPenetrator() { SetCommonCardAttributes("Reality Penetrator", Rarity.UNCOMMON, TargetType.ENEMY, CardType.AttackCard, 3); BaseDamage = 8; Stickers.Add(new BasicAttackTargetSticker()); DamageModifiers.Add(new BusterDamageModifier()); DamageModifiers.Add(new PrecisionDamageModifier()); ProtoSprite = ProtoGameSprite.CogIcon("vr-headset"); }
// Deal 6 damage. Add two Autocannon Sentries to your hand. // Lethal: Gain 3 Data Points. // Exhaust. Cost 1. public Vivisect() { Stickers.Add(new BasicAttackTargetSticker()); Stickers.Add(new ExhaustCardSticker()); BaseDamage = 6; DamageModifiers.Add(new GainDataPointsOnSlayDamageModifier { DataPointsToAcquire = 3 }); ProtoSprite = ProtoGameSprite.CogIcon("split-body"); }
public GildedGun() { // deal 6 damage. Precision. Hoard 2. Cost 0. Gets an additional +2 Gilded for EACH Gilded Gun in your deck. SetCommonCardAttributes("Gilded Gun", Rarity.COMMON, TargetType.ENEMY, CardType.AttackCard, 0); Stickers.Add(sticker); DamageModifiers.Add(new PrecisionDamageModifier()); this.ProtoSprite = ProtoGameSprite.ArchonIcon("machine-gun"); }
public Crusher() { SetCommonCardAttributes("Crusher", Rarity.NOT_IN_POOL, TargetType.ENEMY, CardType.AttackCard, 2); Stickers.Add(new BasicAttackTargetSticker()); Stickers.Add(new BasicDefendSelfSticker()); BaseDamage = 15; BaseDefenseValue = 8; DamageModifiers.Add(new SweeperDamageModifier()); Stickers.Add(new ExhaustCardSticker()); ProtoSprite = ProtoGameSprite.CogIcon("daemon-pull"); }
public IndiscriminateFire() { BaseDamage = 5; SetCommonCardAttributes( "Friendly Fire", Rarity.UNCOMMON, TargetType.NO_TARGET_OR_SELF, CardType.AttackCard, 1); DamageModifiers.Add(new SweeperDamageModifier()); ProtoSprite = ProtoGameSprite.BlackhandIcon("baby-face"); }
public static void AddDamageResist(TechType tt, DamageType damageType, float damageMult) { Log.LogDebug($"Main.AddDamageResist(): TechType = {tt.AsString()}, damageType = {damageType.ToString()}, damageMult = {damageMult}"); if (DamageResistances.TryGetValue(tt, out Dictionary <DamageType, float> DamageModifiers)) { if (DamageModifiers.TryGetValue(damageType, out float modifier)) { Log.LogDebug($"AddDamageResist(): Tried to add modifier for DamageType {damageType.ToString()} to TechType {tt.AsString()} more than once; old value {modifier}."); } else { DamageModifiers.Add(damageType, damageMult); } } else { DamageResistances.Add(tt, new Dictionary <DamageType, float>() { { damageType, damageMult } }); } }
public Limb(Ragdoll ragdoll, Character character, LimbParams limbParams) { this.ragdoll = ragdoll; this.character = character; this.Params = limbParams; wearingItems = new List <WearableSprite>(); dir = Direction.Right; body = new PhysicsBody(limbParams); type = limbParams.Type; if (limbParams.IgnoreCollisions) { body.CollisionCategories = Category.None; body.CollidesWith = Category.None; ignoreCollisions = true; } else { //limbs don't collide with each other body.CollisionCategories = Physics.CollisionCharacter; body.CollidesWith = Physics.CollisionAll & ~Physics.CollisionCharacter & ~Physics.CollisionItem & ~Physics.CollisionItemBlocking; } body.UserData = this; pullJoint = new FixedMouseJoint(body.FarseerBody, ConvertUnits.ToSimUnits(limbParams.PullPos * Scale)) { Enabled = false, //MaxForce = ((type == LimbType.LeftHand || type == LimbType.RightHand) ? 400.0f : 150.0f) * body.Mass // 150 or even 400 is too low if the joint is used for moving the character position from the mainlimb towards the collider position MaxForce = 1000 * Mass }; GameMain.World.Add(pullJoint); var element = limbParams.Element; body.BodyType = BodyType.Dynamic; foreach (XElement subElement in element.Elements()) { switch (subElement.Name.ToString().ToLowerInvariant()) { case "attack": attack = new Attack(subElement, (character == null ? "null" : character.Name) + ", limb " + type); if (attack.DamageRange <= 0) { switch (body.BodyShape) { case PhysicsBody.Shape.Circle: attack.DamageRange = body.radius; break; case PhysicsBody.Shape.Capsule: attack.DamageRange = body.height / 2 + body.radius; break; case PhysicsBody.Shape.Rectangle: attack.DamageRange = new Vector2(body.width / 2.0f, body.height / 2.0f).Length(); break; } attack.DamageRange = ConvertUnits.ToDisplayUnits(attack.DamageRange); } break; case "damagemodifier": DamageModifiers.Add(new DamageModifier(subElement, character.Name)); break; case "statuseffect": statusEffects.Add(StatusEffect.Load(subElement, Name)); break; } } SerializableProperties = SerializableProperty.GetProperties(this); InitProjSpecific(element); }
// deal 20 damage. Slay: A random card in an ally's deck gains Hoard 2 PERMANENTLY. Cost 2. public FinancialAdvisor() { SetCommonCardAttributes("Financial Advisor", Rarity.RARE, TargetType.ENEMY, CardType.AttackCard, 2); DamageModifiers.Add(new FinancialAdvisorSlayTrigger()); ProtoSprite = ProtoGameSprite.CogIcon("shadow-follower"); }