コード例 #1
0
ファイル: Flameburst.py プロジェクト: chadng/PokemonSmash
import Move
import Random
import Type
Burst = Move.Add("flameburst")
Burst.DisplayName = "Flame Burst"


def Attack(player):
    if (player.OnGround):
        player.SetAnimation("ember", False)
        player.Disable(1.0)
        player.Cooldown = 4.0
        Hit = player.AddDamageBox(0, 0.2, 2.0, 2.0)
        Hit.Duration = 0.5

        for i in range(10):
            Fire = player.AddProjectile(0, 0, .5, .5)
            Fire.SetVelocity((Random.NextDouble() - 0.5) * 10,
                             Random.NextDouble() + 3)
            Fire.SetSkeleton("Moves/Flameburst/Flameburst")
            Fire.SetAnimation("idle", False)
            Fire.CollisionMask = 0x0001

            def Destroy(self):
                self.Unload()

            Fire.OnCollideEarth = Destroy

            def FireParticle(self, other):
                other.TakeSpecialDamage(5, player)
コード例 #2
0
ファイル: Scaryface.py プロジェクト: chadng/PokemonSmash
import Move
import Type
Face = Move.Add("scaryface")
Face.DisplayName = "Scary Face"


def Attack(player):
    player.SetAnimation("ember", False)
    player.Disable(0.25)
    player.Cooldown = 1.0

    Hit = player.AddDamageBox(player.Direction * 0.8, 0, 0.8, 0.8)
    Hit.Duration = 0.5

    Hit.SetSkeleton("Moves/ScaryFace/ScaryFace")
    Hit.SetAnimation("idle", False)
    if (player.Direction < 0):
        Hit.FlipAnimation()

    def DefDown(self, other):
        other.Disable(1)
        other.Defense *= 0.9

    Hit.OnCollidePlayer = DefDown


Face.OnUse = Attack
Face.Type = Type.Normal
Face.Category = Type.Status
コード例 #3
0
ファイル: vinewhip.py プロジェクト: chadng/PokemonSmash
import Move
import Timer
import Type
Vinewhip = Move.Add("vinewhip")
Vinewhip.DisplayName = "Vinewhip"


def Attack(player):
    player.SetAnimation("vinewhip", False)
    player.Disable(0.5)
    player.Cooldown = 1.0

    Animation = player.AddDamageBox(0, 0, 0.1, 0.1)
    Animation.SetSkeleton("Moves/Vinewhip/vinewhip")
    Animation.SetAnimation("idle", False)
    Animation.Duration = 0.5
    if (player.Direction == -1):
        Animation.FlipAnimation(True)

    def SpawnDamage():
        Hit = player.AddDamageBox(player.Direction * .75, 0, 1, 0.6)
        Hit.Duration = 0.2

        def Damage(self, other):
            other.SetVelocity(player.Direction * 2, 3)
            other.Disable(0.25)
            other.TakeDamage(10, player)

        Hit.OnCollidePlayer = Damage

    Timer.Schedule(SpawnDamage, 0.20)
コード例 #4
0
ファイル: Hypnosis.py プロジェクト: chadng/PokemonSmash
import Move
import Type
import StatusEffect

Hypnosis = Move.Add("hypnosis")
Hypnosis.DisplayName = "Hypnosis"


def Attack(player):
    player.SetAnimation("hypnosis", False)
    player.Disable(2)
    player.Cooldown = 10

    Hit = player.AddProjectile(player.Direction * 0.8, 0, 0.8, 0.8)
    Hit.SetVelocity(player.Direction * 3, 0)
    Hit.Duration = 0.5

    Hit.SetSkeleton("Moves/Hypnosis/Hypnosis")
    Hit.SetAnimation("idle", True)

    def Sleep(self, other):
        other.AddEffect(StatusEffect.Sleep(player, 5))

    Hit.OnCollidePlayer = Sleep

    def KeepUp(self, time):
        self.SetVelocity(player.Direction * 3, 0)

    Hit.OnUpdate = KeepUp

コード例 #5
0
import Move;
import Type;
Withdraw = Move.Add("withdraw");
Withdraw.DisplayName = "Withdraw";

def Attack(player):
	player.SetAnimation("withdraw", False);
	player.Disable(0.5);
	player.Cooldown = 1.0;
	player.Defense *= 10;
	
	Hit = player.AddDamageBox(player.Direction * 0.8, 0, 0.8, 0.8);
	Hit.Duration = 0.5;
	
	def Withdraw(self, time):
		if (time > 0.4):
			player.Defense /= 10;
			self.Unload();
	Hit.OnUpdate = Withdraw;
Withdraw.OnUse = Attack;
Withdraw.Type = Type.Water;
Withdraw.Category = Type.Status;
コード例 #6
0
import Move
import Type

Whip = Move.Add("tailwhip")
Whip.DisplayName = "Tail Whip"


def Attack(player):
    player.SetAnimation("tailwhip", False)
    player.Disable(0.25)
    player.Cooldown = 1.0

    Hit = player.AddDamageBox(player.Direction * 0.8, 0, 0.8, 0.8)
    Hit.Duration = 0.5

    def AttackDown(self, other):
        other.Disable(1)
        other.Defense *= 0.9

    Hit.OnCollidePlayer = AttackDown


Whip.OnUse = Attack
Whip.Type = Type.Normal
Whip.Category = Type.Status
コード例 #7
0
ファイル: Bubble.py プロジェクト: chadng/PokemonSmash
import Move;
import Random;
import Type;
Bubble = Move.Add("bubble");
Bubble.DisplayName = "Bubble";

def ShootBubble(player):
	bubble = player.AddProjectile(player.Direction * 0.3, 0.3, 0.1, 0.1);
	bubble.SetVelocity(player.Direction * 2 * (Random.NextDouble() + 1), 0);
	bubble.CollisionMask = 0x0001;
	bubble.SetSkeleton("Moves/Bubble/Bubble");
	bubble.SetAnimation("idle", True);
	bubble.Mass = 0.001;
	bubble.Scale = 0.005;
	bubble.Duration = Random.NextDouble() + 0.5;
	
	def Hit(self, other):
		other.TakeSpecialDamage(1, player);
		self.Unload();
	bubble.OnCollidePlayer = Hit;
	
	def Earth(self):
		self.Unload();
	bubble.OnCollideEarth = Earth;
	
	def Float(self, time):
		self.ApplyForce(0, 0.008 + (Random.NextDouble() * 0.004));
			
	bubble.OnUpdate = Float;
	
	return bubble;
コード例 #8
0
ファイル: Growl.py プロジェクト: chadng/PokemonSmash
import Move;
import Type;
Growl = Move.Add("growl");
Growl.DisplayName = "Growl";

def Attack(player):
	player.SetAnimation("growl", False);
	player.Disable(0.25);
	player.Cooldown = 1.0;
	
	Hit = player.AddDamageBox(player.Direction * 0.8, 0, 0.8, 0.8);
	Hit.Duration = 0.5;
	Hit.SetSkeleton("Moves/Growl/Growl");
	Hit.SetAnimation("idle", False);
	if (player.Direction < 0):
		Hit.FlipAnimation();
	def AttackDown(self, other):
		other.Disable(1);
		other.Attack *= 0.9;
	Hit.OnCollidePlayer = AttackDown;
Growl.OnUse = Attack;
Growl.Type = Type.Normal;
Growl.Category = Type.Status;
コード例 #9
0
ファイル: LeechSeed.py プロジェクト: chadng/PokemonSmash
import Move;
import Random;
import Type;
Seed = Move.Add("leechseed");
Seed.DisplayName = "Leech Seed";

def Attack(player):
	player.SetAnimation("leech_seed", False);
	player.Disable(1);
	player.Cooldown = 1.5;
	seed = player.AddProjectile(0, 0, 0.1, 0.1);
	seed.SetVelocity((Random.NextDouble() + 1) * player.Direction, 3 + (Random.NextDouble() * 2));
	seed.CollisionMask = 0x0001;
	seed.SetSkeleton("Moves/LeechSeed/LeechSeed");
	seed.SetAnimation("seed", False);
	seed.Z = Random.NextDouble() - 0.5;
	seed.Permanent = True;
	def Leech(self, other):
		amount = other.HP / 10;
		other.HP -= amount;
		player.HP += amount;
	seed.OnCollidePlayer = Leech;
	
	def Earth(self):
		self.SetAnimation("plant", False);
	seed.OnCollideEarth = Earth;
		
			
Seed.OnUse = Attack;
Seed.Type = Type.Grass;
Seed.Category = Type.Status;
コード例 #10
0
import Move
import Type
Tackle = Move.Add("tackle")
Tackle.DisplayName = "Tackle"


def Attack(player):
    if (player.OnGround):
        player.SetVelocity(player.Direction * 7, 3)
        player.SetAnimation("tackle", False)
        player.Disable(0.5)
        player.Cooldown = 1.0
        Hit = player.AddDamageBox(player.Direction * 0.4, 0, 0.2, 0.6)
        Hit.Duration = 0.5

        def KnockBack(self, other):
            other.SetVelocity(player.Direction * 5, 3)
            player.SetVelocity(0, 0)
            other.Disable(0.25)
            other.TakeDamage(10, player)

        Hit.OnCollidePlayer = KnockBack


Tackle.OnUse = Attack
Tackle.Type = Type.Normal
Tackle.Category = Type.Physical
コード例 #11
0
import Move
import Random
import Type
Razor = Move.Add("razorleaf")
Razor.DisplayName = "Razor Leaf"


def Attack(player):
    player.SetAnimation("leech_seed", False)
    player.Disable(0.5)
    player.Cooldown = 1
    seed = player.AddProjectile(player.Direction * 0.3, 0, 0.1, 0.1)
    seed.SetVelocity(player.Direction * 10, 2)
    seed.CollisionMask = 0x0001
    seed.SetSkeleton("Moves/RazorLeaf/RazorLeaf")
    seed.SetAnimation("idle", True)
    seed.Z = 0.5
    seed.Permanent = True

    def Razor(self, other):
        other.TakeDamage(7, player)
        self.Unload()

    seed.OnCollidePlayer = Razor

    def Earth(self):
        self.Unload()

    seed.OnCollideEarth = Earth

コード例 #12
0
import Move
import Type
Scratch = Move.Add("scratch")
Scratch.DisplayName = "Scratch"


def Attack(player):
    player.SetAnimation("scratch", False)
    player.Disable(0.25)
    player.Cooldown = 1.0
    Hit = player.AddDamageBox(player.Direction * 0.4, 0.1, 0.5, 0.8)
    Hit.Duration = 0.5
    Hit.SetSkeleton("Moves/Scratch/Scratch")
    Hit.SetAnimation("idle", False)
    if (player.Direction > 0):
        Hit.FlipAnimation()

    def KnockBack(self, other):
        other.SetVelocity(player.Direction * 2, 3)
        other.Disable(0.25)
        other.TakeDamage(10, player)

    Hit.OnCollidePlayer = KnockBack


Scratch.OnUse = Attack
Scratch.Type = Type.Normal
Scratch.Category = Type.Physical
コード例 #13
0
import Move
import Random
import Type
Ember = Move.Add("ember")
Ember.DisplayName = "Ember"


def Attack(player):
    player.SetAnimation("ember", False)
    player.Disable(0.5)
    player.Cooldown = 1
    for i in range(Random.Next(3) + 6):
        fire = player.AddProjectile(player.Direction * 0.3, 0.3, 0.1, 0.1)
        fire.SetVelocity(player.Direction * (Random.NextDouble() + 4),
                         2 + (Random.NextDouble() / 3))
        fire.CollisionMask = 0x0001
        fire.SetSkeleton("Moves/Ember/Ember")
        fire.SetAnimation("idle", True)
        fire.Z = Random.NextDouble() - 0.5
        fire.Permanent = True

        def Hit(self, other):
            other.TakeSpecialDamage(2, player)
            self.SetAnimation("burn", True)
            self.Duration = 0.5
            self.Permanent = False

        fire.OnCollidePlayer = Hit

        def Earth(self):
            self.Permanent = False
コード例 #14
0
ファイル: TakeDown.py プロジェクト: chadng/PokemonSmash
import Move
import Type
Tackle = Move.Add("takedown")
Tackle.DisplayName = "Take Down"


def Attack(player):
    if (player.OnGround):
        player.SetVelocity(player.Direction * 10, 3)
        player.SetAnimation("tackle", False)
        player.Disable(1)
        player.Cooldown = 2
        Hit = player.AddDamageBox(player.Direction * 0.4, 0, 0.2, 0.6)
        Hit.Duration = 0.5

        def KnockBack(self, other):
            other.SetVelocity(player.Direction * 5, 3)
            player.SetVelocity(player.Direction * -3, 3)
            player.SetVelocity(0, 0)
            other.Disable(0.25)
            other.TakeDamage(20, player)
            player.TakeDamage(20 / 4, player)
            self.Unload()

        Hit.OnCollidePlayer = KnockBack


Tackle.OnUse = Attack
Tackle.Type = Type.Normal
Tackle.Category = Type.Physical